目的: 我想打開一個意圖選擇器,只顯示本機相機應用程序和本機畫廊應用程序。你如何限制意圖選擇器只顯示特定的應用程序?
我現在所擁有的: 我有本機攝像頭的應用程序,本土畫廊的應用程序,並且可以打開文件中的所有其他應用程序(太空人文件管理器,照片應用程序...等)
那麼,有什麼我失蹤?這將有助於限制我的意圖選擇器只顯示我需要的應用程序? (僅限圖庫和相機)?
謝謝,閱讀,並希望任何意見或建議。
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);
不要以爲除了硬編碼需要在選擇器中顯示的應用程序包以外,您可以通過其他方式實現此目的。但是這些軟件包在不同的系統中可能會有所不同 - 例如,我的意思是默認的圖庫應用在原始的Android&Cyanogenmod中不會有相同的軟件包。所以最好將所有應用程序留給用戶選擇 – Sam
@ SamN-a我硬編碼了Intent圖庫的名稱,但它仍然顯示所有應用程序(圖庫,照片,astro..etc)。 – xiaowoo
請允許用戶使用用戶想要的任何應用程序。如果用戶討厭他們的默認相機應用程序並希望使用任何可用的第三方應用程序,這是用戶的選擇,而不是您的選擇。如果用戶想要使用與其首選社交網絡集成的圖庫風格的應用程序,那是用戶的選擇,而不是您的選擇。你不是比你的用戶更重要。 – CommonsWare