短信广播接收器一直收不到广播,但是有成功注册了Receiver了
来源:8-2 短信提醒—自定义广播接收器监听短信
Chitose
2018-03-11
短信权限我也做了: <!--接受短信权限 --> <uses-permission android:name="android.permission.RECEIVE_SMS" />
接收短信的Action:
public static final String SMS_ACTION ="android.provider.Telephony.SMS_RECEIVED";
Service代码如下(主要问题:“Start Service” 的log是能发出去的,就是能成功注册Receiver吧,但接收短信时就是进不去onReceive,虚拟机和真机都试过了)
public class MsgService extends Service{
private SmsReceiver receiver;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate(){
super.onCreate();
init();
}
private void init() {
L.e("Start Service");
//动态注册
receiver = new SmsReceiver();
IntentFilter intent = new IntentFilter();
//添加Action
intent.addAction(StaticClass.SMS_ACTION);
//设置优先权
intent.setPriority(Integer.MAX_VALUE);
//注册
registerReceiver(receiver, intent);
L.e("Start Service");
}
@Override
public void onDestroy(){
super.onDestroy();
L.e("Stop Service");
unregisterReceiver(receiver);
}
public class SmsReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
L.e("Msg got.");//接收不到
String action = intent.getAction();
if(StaticClass.SMS_ACTION.equals(action)){
L.e("Msg got.");//接收不到
}
}
}
}写回答
2回答
-
慕码人2108295
2019-05-07
说直白一点吧,在setting活动中的startService之前进行动态权限申请即可,具体的可以看老师git仓库里readme中附录的百度云视频
00 -
Chitose
提问者
2018-03-14
已解决!
022018-04-17
相似问题
