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