BraodCastReceiver没有为手机状态监听器android开火

时间:2016-10-29 08:57:20

标签: android broadcastreceiver android-broadcastreceiver

我尝试在服务中注册和取消注册手机状态广播接收器,但它根本没有解雇我已经在清单中声明了手机状态权限。

这是我的广播接收器。

php -S <port>

这是注册和取消注册广播的服务。

kill -9 PID

这就是我启动服务的方式

    public class IncomingCalls extends BroadcastReceiver {
    private static String mLastState;

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(ApplicationUtils.TAG, "IncomingCalls");
        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        if (!state.equals(mLastState)) {
            mLastState = state;
            Log.i(ApplicationUtils.TAG, state);
            if (mLastState==TelephonyManager.EXTRA_STATE_RINGING) {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(phoneNumber, null, CallListenService.MESSAGE, null, null);

            }
        }
    }
}

之前有效,但现在根本没有工作。

1 个答案:

答案 0 :(得分:0)

我发现这个bug与android 6.0有关 我需要询问你的READ_PHONE_STATE权限,之后braodcast接收器开始射击。