【发布时间】:2016-01-05 05:09:50
【问题描述】:
我希望用户能够点击一个按钮,并可以选择图库或类似应用或我在我的应用中拥有的相机活动,而不是构建 -在一个。我阅读了相关答案 here 和 here 。但是,我不想包含内置相机应用,但我想包含我的相机活动。
到目前为止,我已从我发布的两个链接中进行了以下设置:
Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY);
Intent gallIntent = new Intent(Intent.ACTION_GET_CONTENT);
gallIntent.setType("image/*");
Intent camIntent = new Intent(UserEventsActivity.this,CameraActivity.class);
camIntent.setComponent(new ComponentName("MCamera", "Camera"));
List<Intent> yourIntentsList = new ArrayList<Intent>();
yourIntentsList.add(camIntent);
List<ResolveInfo> listGall = getApplicationContext().getPackageManager().queryIntentActivities(gallIntent, 0);
for (ResolveInfo res : listGall) {
final Intent finalIntent = new Intent(gallIntent);
finalIntent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
yourIntentsList.add(finalIntent);
}
pickIntent.putExtra(Intent.EXTRA_INTENT, yourIntentsList.toArray(new Parcelable[]{}));
pickIntent.putExtra(Intent.EXTRA_TITLE, "Select Source");
startActivityForResult(pickIntent, 1);
由此产生的结果是一大堆不相关的应用和服务,其中大部分实际上在列表中重复了多次。此外,我的相机活动不在其中。当我只是做pickIntent.putExtra(Intent.EXTRA_INTENT,gallIntent) 时,我确实得到了我想要的相关图库应用程序,但我无法添加我的活动。
关于我做错了什么有什么想法吗?
此外,当我单击它时,不会打开任何服务。但是,这可能与 startActivityOnResult 中的 '1' arg 有关,因为我不确定该 arg 应该放什么。
【问题讨论】:
-
我认为为了将其创建为自定义意图,您的相机活动应该是一个单独的应用程序,尽管我不确定
标签: java android android-intent android-intent-chooser