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>

@キーアプリ

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

<uses-permission>nandeesh が示すように、KeyApp に対応する要素が必要であり、 KeyApp がmainapp.permission.CHECK_RESULTアクセス許可を要求することを示しています。

また、私の知る限り、2番目のパラメーター にsendBroadcast()は、 MainApp にも の<uses-permission>要素が必要ですmainapp.permission.CHECK_RESULT。それがあなたの意図でない場合 (しゃれが意図されている (ネストされたしゃれが意図されている (ああ、いいえ! 無限のしゃれ再帰!)))、私はsendBroadcast()呼び出しでその 2 番目のパラメーターを削除します。

于 2012-09-04T17:11:09.013 に答える