1

暗黙のインテント(startActivityForResultを使用)を送信し、回答(onActivityResultを使用)を受信しました。この回答では、コンテンツプロバイダーから送信されたデータのURIを受信しましたが、誰が私に回答してこのデータを送信したのか興味があります。どういうわけか、私の暗黙の意図に答えたコンテンツプロバイダーのクラス名をプログラムで見つけることができますか?

4

1 に答える 1

1

暗黙のインテントからプロバイダーを取得する方法はわかりませんが、resolveActivityを使用していつでも自分でインテントを解決できます。これは、暗黙の意図を解決するために内部で使用されるものです。インテントが解決するクラスを取得するには、次のようにします。

   ComponentName cName = intent.resolveActivity(getPackageManager());
   Log.d("resolve","class = " + cName.getClassName());  

理論的にはstartActivity...(intent)、同じコンポーネントを選択する必要があります。確認したい場合は、いつでもインテントを更新できます

 intent.setComponent(cName);

基本的に、これは暗黙のインテントを明示的なインテントに解決して、インテントを起動する前に送信先のコンポーネントを把握します。

于 2012-12-27T04:45:29.797 に答える