目的: 我想打开一个意图选择器,只显示本机Camera应用程序和本机Gallery应用程序。
我现在拥有的东西: 我有原生相机应用程序,原生图库应用程序和所有其他可以打开文件的应用程序(太空人文件管理器,照片应用程序......等)
那么,我有什么遗漏的吗?这有助于限制我的意图选择器只显示我需要的应用程序? (仅限图库和相机)?
感谢您的阅读,并感谢任何意见或建议。
Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT,null);
galleryIntent.setType("image/*");
galleryIntent.setClassName("com.google.android.gallery3d", "com.android.gallery3d.app.Gallery");
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
chooser.putExtra(Intent.EXTRA_TITLE, "Select a Photo");
Intent[] intentArray = {cameraIntent};
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooser,CAMERA_CODE);
答案 0 :(得分:1)
正如@ SamN-a所写,通常不可能。使用硬编码的类名称并不是一个好习惯:即使您只查看安装了标准GAPPS的设备,也不能保证所有设备都存在这些名称。
但优良作法是显示自定义选择器而不是系统默认值,并在操作栏上直接提供最相关(例如上次使用)选项。