Grooter 2017-09-15 03:25 采纳率: 100%
浏览 942
已采纳

安卓开发关于通过广播获取信息的问题

申请权限

            <!--短信广播监听器-->
    <receiver android:name=".Broadcast">
        <intent-filter android:priority="999">
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class Broadcast extends BroadcastReceiver {
private static final String ACTION="android.provider.Telephony.SMS_RECEIVED";
private Message message=new Message();
private Bundle bundle=new Bundle();
@Override
public void onReceive(Context context, Intent intent){
Toast.makeText(context, "来短信啦",Toast.LENGTH_SHORT).show();
if(ACTION.equals(intent.getAction())){
SmsMessage[] smsMessage=getMessageFromIntent(intent);
StringBuilder str=new StringBuilder();
if(smsMessage!=null&&smsMessage.length>0){
for(SmsMessage smg:smsMessage){
str.append(smg.getDisplayOriginatingAddress()+":\n ");
str.append(smg.getDisplayMessageBody()+"\n");
}
}
Toast.makeText(context, str.toString(),Toast.LENGTH_SHORT).show();
}
}
public static SmsMessage[] getMessageFromIntent(Intent intent){
SmsMessage[] smsMessage=null;
Bundle bundle=intent.getExtras();
Object[] puds=(Object[])bundle.get("puds");
smsMessage=new SmsMessage[puds.length];
for(int i=0;i<puds.length;i++){
byte[] data=((byte[])puds[i]);
smsMessage[i]=SmsMessage.createFromPdu(data);
}
return smsMessage;
}
}

请问哪里错了就是监听不了短信,有人发短信来没app没反应

不好意思我小白一个没有C币,求助

  • 写回答

3条回答 默认 最新

  • 秦城季 2017-09-16 09:57
    关注

    如果代码没错应该是手机的问题了,有些手机厂商为了用户数据的安全,做系统的时候会把某些源码改掉的。比如我的小米的有很多功能被限制了,太tm恶心了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况