2011-06-23 11 views
9

私はマニフェストでいくつかの異なるアクティビティを定義するアンドロイドアプリを持っています。これらのアクティビティの中には、私が使用するインテントフィルタ(ACTION_PICKなど)があります。これらのアクティビティーは、インテントフィルターのために、他のアプリケーションがACTION_PICKを処理するアクティビティーを要求したときに表示されます。これを防止する方法がいくつかあるので、私の活動に他のアプリケーションからアクセスできないようにしていますか?私はすでにアンドロイド:exported = "false"を自分の活動に設定しようとしましたが、何もしませんでした。他のアンドロイドアプリが自分のアクティビティにアクセスするのを防ぐには

+0

おっとは、ちょうどここに答えが見つかりました:http://stackoverflow.com/questions/1571615/preventing-apps-from-invoking-my-activity/1571632#1571632 削除する方法はありますこの質問? – Dominic

+0

私は答えとして表示したものと重複してあなたの質問を閉じるよう投票しました。しかしそれを閉じるにはさらに3票を要するだろう。 – Squonk

+1

実際には、ママが投稿した回答ははるかに簡潔です。 – Dominic

答えて

13

は、あなたがする必要があります:
*は
(あなたの署名を持つアプリケーションでのみ使用可能です)許可を定義*アプリケーションが
*あなたが保護したい活動のためにその権限を必要とし、あなたの定義された権限を使用していることを定義します。 (主な打ち上げ活動には必要ないように注意してください)。

<!-- define a permission --> 
<permission 
    android:protectionLevel="signature" 
    android:name="com.mypackage.MYPERMISSION"/> 

<uses-permission android:name="com.mypackage.MYPERMISSION" /> 

<!-- define an activity which can only be started through internal code --> 
<activity android:name="..." 
      android:permission="com.mypackage.MYPERMISSION" > 
    ... 
</activity> 
+0

完全性のために、permissionタグとuses-permissionタグはマニフェストタグ内にありますが、applicationタグの外側にあり、activityタグはapplicationタグ内にあります。あれは正しいですか? – Dominic

+1

@Dominic - はい、これが私の目録の見方です。おそらく他の職種でも働くことができますが、私はそれらを試していません。 – mah

+0

これは正しい答えとして受け入れられるべきです。 – cgogolin

関連する問題