我想学习如何创建主应用程序及其关联的密钥应用程序。问题是我不知道如何将关键应用程序广播mainapp.action.VALID转换为主应用程序。
<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>
Intent i = new Intent();
i.setAction("mainapp.action.CHECK_OK");
context.sendBroadcast(i, "mainapp.permission.CHECK_RESULT");
结果是,意图被拒绝:它需要mainapp.permission.CHECK_RESULT权限。但是如果我删除了权限,mainapp.receiver.ResponseReceiver可以收到意图,也可以确认两个应用程序都使用相同的签名。
我在这里想念什么?
答案 0 :(得分:2)
正如nandeesh所指出的,您需要KeyApp中相应的<uses-permission>
元素,并说KeyApp请求mainapp.permission.CHECK_RESULT
权限。
此外,AFAIK,您sendBroadcast()
的第二个参数将要求MainApp还拥有<uses-permission>
的{{1}}元素。如果这不是你的意图(双关语意图(嵌套双关语意图(哦,不!无限双关语递归!))),我会在mainapp.permission.CHECK_RESULT
调用中删除第二个参数。