READ_PRIVILEGED_PHONE_STATE权限错误

时间:2017-05-14 18:57:08

标签: android permissions crash broadcastreceiver

我创建了一个监控来电(来电和去电)的应用,并且在电话振铃期间,它会显示有关号码的详细信息。 来电一切正常,但是当用户拨打电话时,应用会因此错误而崩溃:

05-14 23:14:36.376 1427-1475/? W/BroadcastQueue: Permission Denial: receiving Intent { act=android.intent.action.PHONE_STATE flg=0x10 (has extras) } to ir.apptune.antispam/.CallReceiver requires android.permission.READ_PRIVILEGED_PHONE_STATE due to sender android (uid 1000)

这是我使用的sdk版本的详细信息:

minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"

我授予的权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.CALL_PHONE" />

如果授予权限,我也检查了运行时。它返回0表示是。但仍然是同样的错误。 另请考虑清单中的广播接收者声明:

<receiver
    android:name=".CallReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE" />
    </intent-filter>
</receiver>

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

READ_PRIVILEGED_PHONE_STATE具有特权|签名权限和第三方应用程序不能拥有此权限。