我想学习如何创建主应用程序及其关联的关键应用程序。问题是我不知道如何使关键应用程序将mainapp.action.VALID广播到主应用程序中。
@MainApp
<permission
android:name="mainapp.permission.CHECK_RESULT"
android:protectionLevel="signature" />
<application>
<receiver
android:name=".ResponseReceiver"
android:permission="mainapp.permission.CHECK_RESULT" >
<intent-filter>
<action android:name="mainapp.action.CHECK_OK" />
</intent-filter>
</receiver>
@KeyApp
Intent i = new Intent();
i.setAction("mainapp.action.CHECK_OK");
context.sendBroadcast(i, "mainapp.permission.CHECK_RESULT");
结果是,意图被拒绝:它需要mainapp.permission.CHECK_RESULT权限。但是,如果我删除许可,则mainapp.receiver.ResponseReceiver可以接收该意图,还可以确认两个应用程序使用相同的签名。
我在这里想念什么?
最佳答案
正如nandeesh指出的那样,您在KeyApp中需要相应的<uses-permission>
元素,即KeyApp请求mainapp.permission.CHECK_RESULT
权限。
同样,AFAIK,sendBroadcast()
的第二个参数将要求MainApp也具有<uses-permission>
的mainapp.permission.CHECK_RESULT
元素。如果这不是您的意图(想要使用双关语(嵌套双关语(哦,不!无限双关递归!))),我将在sendBroadcast()
调用中删除第二个参数。