2

我想学习如何创建一个主应用程序及其关联的关键应用程序。问题是我不知道如何让关键应用程序广播 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 可以接收意图,也可以确认两个应用程序使用相同的签名。

我在这里想念什么?

4

1 回答 1

2

正如 nandeesh 所指出的,您需要 KeyApp 中的相应<uses-permission>元素,即 KeyApp 请求mainapp.permission.CHECK_RESULT权限。

此外,AFAIK,您的第二个参数将要求MainAppsendBroadcast()也具有. 如果这不是您的意图(双关语意图(嵌套双关语意图(哦,不!无限双关语递归!))),我会在通话中删除第二个参数。<uses-permission>mainapp.permission.CHECK_RESULTsendBroadcast()

于 2012-09-04T17:11:09.013 回答