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