鉴于Android中的安全模型,我正在尝试使用广播接收器的自定义权限.
我做了什么:
我已经为接收器声明了自定义权限,从而限制了它可以接收的广播.清单中的一些代码:
现在我希望接收器UpdateUserReceiver只接收来自使用权限'abc'的组件的广播.
广播发送代码:
// Update username. Invoke broadcast. Intent updateUserBroadcast = new Intent(); updateUserBroadcast.putExtra("username", userName); updateUserBroadcast.setAction("android.intent.action.ACTION_UPDATE_USERNAME"); sendBroadcast(updateUserBroadcast);
发送广播的活动:
问题1:如图所示,活动无处使用接收方声明的权限,以便它可以从活动接收广播.但仍然调用接收器,我怀疑它是由于使用隐式意图虽然我不确定.有任何想法吗?
问题2:在应用级别声明的权限标记和接收者内部的android:permission标记之间有什么区别?我理解第二个的使用,它在任何人都可以期待接收者接收广播之前强制执行许可,但是为什么是第一个需要的.是否需要此方案,或者是否可以将其删除.无论哪种方式,我都检查过接收器接收广播.