拨出电话接收器是否在Android 7.0或更高版本中工作?

时间:2017-09-19 05:52:31

标签: android

在我的项目中,我有一个场景可以拨打电话并在2次通话后触发事件,但在android 6或7中,即使我已经获得phone_state权限,它也无法正常工作。

public void onReceive(Context context, Intent intent) {
        Thread.setDefaultUncaughtExceptionHandler(new CustomExceptionHandler(className));
    //String state = intent.getStringExtra(TelephonyManager.EXTRA_PHONE_NUMBER);


        if (intent. getAction (). equals (Intent. ACTION_NEW_OUTGOING_CALL))
        {
            checkOutgoingCallCounter(shPreference,context);
        }

    }

        

        <intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
        </intent-filter>
    </receiver>

1 个答案:

答案 0 :(得分:1)

READ_PHONE_STATE是一个必须在运行时请求的“危险”权限。用于检查您是否拥有权限的API位于ContextCompat,但请求权限的API位于ActivityCompat,因此您需要Activity来请求权限。 BroadcastReceiver无法请求它。 (在我的头脑中,我不认为你的BroadcastReceiver甚至会在获得许可之前被调用。如果是,你可以从那里开始一项活动。)