我发送了隐式意图(使用startActivityForResult),我收到了回答(使用onActivityResult),在这个回答中我收到了内容提供商发送给我的数据 - 但是我很感兴趣是谁回答了我并发给我了这个数据。我可以以某种方式以编程方式找到内容提供者的类名称,它回答了我的隐含意图吗?
答案 0 :(得分:1)
我不确定如何从隐式意图中获取提供程序,但您始终可以使用resolveActivity自行解决意图。它是在引擎盖下用来解决隐式意图的。要获得意图解析的类,您可以执行类似
的操作 ComponentName cName = intent.resolveActivity(getPackageManager());
Log.d("resolve","class = " + cName.getClassName());
理论上,如果你做startActivity...(intent)
,则应选择相同的组件。如果您想确定,可以随时使用
intent.setComponent(cName);
基本上,这是解析隐式意图,以明确在启动意图之前知道要发送给哪个组件。