如果這是要求安全性,您可以使用sendBroadcast(intent, receiverPermission)
和不使用隱式意圖。
使用Explicit Intent,以便只有一個應用程序可以監聽您的廣播數據。像
Intent intent = new Intent();
intent.setAction("my.app.intent.MyMessageHere");
intent.setComponent(new ComponentName("packagename of receiver app","receiverclassname.java"));
併發送爲sendBroadcast(intent)
。
如果你想要更安全,你可以引入自定義權限。然後你需要將這個權限加入到這兩個應用程序中,這將確保你的溝通更安全。
如何添加自定義權限
<permission android:name="com.testpackage.mypermission" android:label="my_permission" android:protectionLevel="signature"/>
<uses-permission android:name="com.testpackage.mypermission" />
添加上面的代碼到這兩個應用程序清單。詳細瞭解android:protectionLevel="signature"。
所以你必須使用相同的證書籤署你的兩個應用程序。因此,如果具有相同權限的其他應用程序在您的證書籤名之前無法收聽您的廣播。
現在您必須將android:permission="com.testpackage.mypermission"
添加到收件人應用清單中的接收器中。而已。
非常感謝。你能給我更多關於這些「自定義權限」的信息嗎?我需要做什麼? – Ton
@Ton看到我更新的答案。我現在要走了。如果您有問題,我會在明天回覆給您 –