she*_*ekh 5 android broadcastreceiver android-manifest android-permissions
我试图在BroadcastReceiver获得READ_PHONE_STATE许可的情况下使用。我要求用户授予运行权限(Android M),但毕竟我得到了以下权限拒绝:
W/BroadcastQueue: Permission Denial: 接收 Intent { act=android.intent.action.PHONE_STATE flg=0x10 (has extras) } 到 com.pb.qostest/.network.PhoneStateBroadcastReceiver 需要 android.permission.READ_PRIVILEGED_PHONE_STATE 由于发件人 android (uid) 1000)
对于权限,我使用此链接中的代码:https : //stackoverflow.com/a/38764861
到目前为止,我希望我的手机状态BroadcastReceiver只是打印一些东西,所以它看起来像这样:
public class PhoneStateBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("RECEIEVER", "PhoneStateBroadcastReceiver Receiver started!");
}
}
Run Code Online (Sandbox Code Playgroud)
无论如何,由于上面的许可拒绝,没有打印任何内容。
在清单中它是:
<receiver
android:name=".network.PhoneStateBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
...
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Run Code Online (Sandbox Code Playgroud)
知道它应该如何相似或有什么问题吗?
为了能够检测电话呼叫,您需要:
1 在Manifest.xml中,定义您的接收者并请求PHONE_STATE权限:
<receiver android:name=".network.PhoneStateBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
// ...
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Run Code Online (Sandbox Code Playgroud)
2 添加一个类 PhoneStateBroadcastReceiver ,它扩展了 BroadcastReceiver 并覆盖 onReceive()
3 在运行时,预先请求PHONE_STATE权限
ActivityCompat.requestPermissions(myMainActivity,
new String[]{Manifest.permission.READ_PHONE_STATE},
READ_PHONE_STATE_CODE);
Run Code Online (Sandbox Code Playgroud)
并通过系统对话框给出
4 打电话
您将看到 onReceive() 中捕获的意图:
intent: Intent { act=android.intent.action.READ_PHONE_STATE flg=0x10 cmp=com.myApp.network.PhoneStateBroadcastReceiver (has extras) }
Action: android.intent.action.PHONE_STATE
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |