protected-broadcast(暂时从网上搜到这么多,也不知对错,先留着)
“保护性广播”,在一些AndroidManifest.xml中的一级标记<protected-broadcast>,具体有何作用:
此处指定一个广播,该广播只能被系统发送。
注 意:只有系统appliaction才能在其AndroidManifest.xml中定义Protected Broadcast,系统appliaction包括/system/framework、/system/app、vendor/app下的 package,因此设备中安装的第三方apk中如果定义了Protected Broadcast,那么这个Protected Broadcast将不生效。
简单地说,Android认为有一些广播是只能由系统发送的,如果某个系统级AndroidManifest.xml中写了这个标记,那么在PKMS解析该文件时,就会把“保护性广播”标记中的名字(一般是Action字符串)记录下来。
在系统运作起来之后,如果某个不具有系统权限的应用试图发送系统中的“保护性广播”,AMS会抛出异常,提示"Permission Denial: not allowed to send broadcast"。
代码中可以看到<protected-broadcast>标记的具体写法,如下
<protected-broadcast android:name="android.intent.action.SERVICE_STATE" />
<protected-broadcast android:name="android.intent.action.RADIO_TECHNOLOGY" />