2012-03-02 12 views
6

私は2つのアプリケーションを持っています。
app2protection level: signature)で許可を定義し、 app1にその権限を使用します。私は、サービスを使用する場合
することは、私はこれだけapp1app2に意図を送ることができる権限を設定することができます。
app2のサービスは、その許可によって保護されています。 (私の署名が漏洩されていない場合)。このようにして
、唯一app1app2に サービスへの意図を送信することができますapp2上のサービス、 なし他のアプリへの意図を送信することができます。特定のアプリからAndroid放送受信機を制限する

ブロードキャストレシーバでも同じことを実行できますか?

  • APP1:sendBroadcast(意図、許可)
  • APP2:その許可を使用し、許可を定義します。

sendBroadcast(意図、許可)を使用するための私の理解するには、 アプリケーションが許可を「使用」する必要はありません。意味する任意のアプリケーション app2に意図を送ることができます。これらの許可パラメータは、 app2に対してのみチェックされ、他のアプリケーションがこのインテントを受け取らないようにします。 (私はapp2を削除し、定義された同じ権限文字列 で偽app2をインストールした場合、偽のapp2は予想外である、app1から意図を得ることができます)ところで

、アプリケーションが許可を定義し、それ自体を使用する場合は、 のProtectionLevel (署名)は意味を持たないようです。これは本当ですか?

  • APP1:その許可を使用し、許可を定義

    今、私は追加の権限を設定することができます。

  • app2:受信者はその許可のためにのみ制限されています。

1はapp1を削除する場合は、再度、偽app1は、偽のapp1app2に偽の意図を送信することができ、非常に同じ 許可を得てインストールされます。 app2が偽の意図を受け取らないようにするにはどうすればよいですか?

おかげ

+0

タグは、放送事業者がどのような権限を持つべきかを定義することもできます。http://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn –

答えて

5

も、私はあなたがこのように符号化することによって、不正な放送からあなたの受信機を保護することができることを意味しhttp://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn

を参照して、放送局が持つべき何の権限を定義することができますタグ:

... 
<permission android:name="com.yourapp.PERMISSION" 
    android:protectionLevel="signature" 
     android:label="@string/permission_label" 
     android:description="@string/permission_desc"> 
</permission> 
... 

<receiver android:name=".MyReceiver" 
    android:permission="com.yourapp.PERMISSION"> 
    <intent-filter> 
     <action android:name="com.yourapp.ACTION" /> 
    </intent-filter> 
</receiver> 
... 
関連する問題