我有一个列表,其中包含可以处理我的两个操作Intent.ACTION_PICK
和MediaStore.ACTION_IMAGE_CAPTURE
中的任何一个的应用。我后来使用数组适配器用我的listivew填充此列表中的信息。
在我的onItemClickListener
中,我可以从ActivityInfo
个实例中获取ComponentName
和ResolveInfo
。但是无法获得 {{1来自IntentFilter
的实例(尝试让它抛出NullPointerException ),和YET 我列表中的任何应用程序必须解决我的一个意图,让它成为列表
这是抛出nullpointerexception ResolveInfo
IntentFilter filter = launchable.filter;
问题
如何在我的onClickListner主体中获取所选应用解析的意图?
答案 0 :(得分:1)
您需要明确说要返回过滤器。而不是:
List<ResolveInfo> launchables=pm.queryIntentActivityOptions(
this.getComponentName(),
new Intent[]{takePicture}, photoPickerIntent, 0);
使用此:
List<ResolveInfo> launchables=pm.queryIntentActivityOptions(
this.getComponentName(),
new Intent[]{takePicture}, photoPickerIntent,
PackageManager.GET_RESOLVED_FILTER);
我实际上没有测试过这个。请注意,返回IntentFilter
有很多错误和缺少的功能。在很多情况下,文档是错误的,在很多情况下代码没有按照您的预期执行,并且没有很多好的工作示例。
试试这个并告诉我们它是否有效。