如何找到回答我意图的内容提供商的类名?

时间:2012-12-27 03:10:27

标签: android android-intent

我发送了隐式意图(使用startActivityForResult),我收到了回答(使用onActivityResult),在这个回答中我收到了内容提供商发送给我的数据 - 但是我很感兴趣是谁回答了我并发给我了这个数据。我可以以某种方式以编程方式找到内容提供者的类名称,它回答了我的隐含意图吗?

1 个答案:

答案 0 :(得分:1)

我不确定如何从隐式意图中获取提供程序,但您始终可以使用resolveActivity自行解决意图。它是在引擎盖下用来解决隐式意图的。要获得意图解析的类,您可以执行类似

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

理论上,如果你做startActivity...(intent),则应选择相同的组件。如果您想确定,可以随时使用

更新您的意图
 intent.setComponent(cName);

基本上,这是解析隐式意图,以明确在启动意图之前知道要发送给哪个组件。