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 回答