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" />