2011-01-12 5 views
2

android.intent.action.SENDのような意図に対して、デフォルトのアプリケーションが選択されていることを検出する方法はありますか?Androidのデフォルトデフォルト - 検出して消去する

コードでデフォルトのアプリケーションをクリアする方法はありますか?

私はデフォルトを削除するか、少なくとも手動で行う方法を示す画面を表示するようにユーザーに指示したいと思います。

答えて

5

PackageManagerをご覧ください。これにより、resolveActivity(intent)を使用してインテントをどのように処理するかを決定できます。設定を消去するメソッド(clearPackagePreferredActivities)は、自分のパッケージでのみ動作するようです。

+0

あなたは正しい道にいるようですが、そこにはたくさんの場所があります。私は家に帰るときにこれを研究しなければならないでしょう。ありがとう。 – user432209

+0

このメソッドを使用してデフォルトのアクティビティが不足していることを検出できました。基本的にデフォルトが選択されていない場合、私は "com.android.internal.app.ResolverActivity"を取得しました。だから、うまくいきましたが、私は文字列で比較する必要がありました。私は確信していますが、アクティビティ名が変わる可能性のある有望な方法です。ありがとう! – user432209

+0

@ user432209、あなたは 'resolveActivity(intent、MATCH_DEFAULT_ONLY)'を使って文字列の比較を避けることができると思います。 – beetstra

3
デフォルトの

使用2段階の検出:

PackageManager.queryIntentActivities解決取得する意向のためにすべての活動、PackageManager.resolveActivityを取得します。

リストにあるものがqueryIntentActivitiesで返された場合、「完了アクションを使用」ダイアログが表示されず、「デフォルト」アクティビティが設定されます。

関連する問題