您好,登錄后才能下訂單哦!
1.自己發送的廣播,只有指定的app才能接收(通過權限設置)
//sender app
1.在Androidmanifest.xml中聲明新的權限:
<permission
android:name="com.self.permission.recv_broadcast"
android:protectionLevel="normal" />
2.發送廣播時,指定權限:
sendBroadcast("com.xxx.xxx.action","com.self.permission.recv_broadcast");
經過以上2步,使得只有具備com.self.permission.recv_broadcast權限的Receiver才能接收該廣播。
故,要接收該廣播,接收的app應該在其Androidmanifest.xml中聲明使用該權限:
<uses-permission android:name="com.self.permission.recv_broadcast" />
然后,靜態注冊則還需在AndroidMainfest.xml中聲明:
<receiver android:name=".XXXReceiver"
android:permission="com.self.permission.recv_broadcast">
<intent-filter>
<action android:name="com.android.XXX_ACTION" />
</intent-filter>
</receiver>
或者:
//動態注冊
registerReceiver(receiver, "com.self.permission.recv_broadcast",null);
經測試,只要在接收特定權限廣播的AndroidMainfest.xml中聲明:
<uses-permission android:name="xxx.permission.xx" />
,那么即使不使用registerReceiver(receiver, "xxx.permission.xx",null)權限注冊方式,而采用簡單的registerReceiver(receiver,filter),這樣,也是可以接收到特定權限廣播的,因為xml里面已經聲明了權限(注:該種方式只對普通應用有效,系統簽名的應用通過這種不指明權限的注冊方法,是不能接收到相應廣播的)。
2.自己接收廣播,只有指定的廣播才會接收(也是通過權限設置)
//receiver app
1.因為是自己接收特定廣播,故該廣播也是需要某一特定權限,故先在Androidmanifest.xml中聲明一個新的權限:
<permission android:name="com.self.permission.send_broadcast" />
2.然后,在自己(Receiver)的<receiver>tag中添加權限聲明:
<receiver android:name=".XXXReceiver"
android:permission="com.self.permission.send_broadcast">
<intent-filter>
<action android:name="com.android.XXX_ACTION" />
</intent-filter>
</receiver>
這樣一來,該receiver便只能接收來自具有"com.self.permission.send_broadcast"權限的應用發出的廣播。
3.要發送這種廣播,只需在Sender App的AndroidManifest.xml中也聲明使用該權限即可:
<uses-permission android:name="com.self.permission.send_broadcast" />
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。