如何在您的应用程序中打开默认相机?
我不想为它打开选择器(它的客户要求)。我正在使用这个意图android.media.action.IMAGE_CAPTURE
并调用活动以获得结果。
一切都很好,但是像Line Camera、Paper Camera这样的应用程序出现在带有默认相机应用程序的选择器中,我不想显示选择器。
您的关注将不胜感激。
如何在您的应用程序中打开默认相机?
我不想为它打开选择器(它的客户要求)。我正在使用这个意图android.media.action.IMAGE_CAPTURE
并调用活动以获得结果。
一切都很好,但是像Line Camera、Paper Camera这样的应用程序出现在带有默认相机应用程序的选择器中,我不想显示选择器。
您的关注将不胜感激。
List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
for (int n=0;n<list.size();n++) {
if((list.get(n).flags & ApplicationInfo.FLAG_SYSTEM)==1)
{
Log.d("TAG", "Installed Applications : " + list.get(n).loadLabel(packageManager).toString());
Log.d("TAG", "package name : " + list.get(n).packageName);
if(list.get(n).loadLabel(packageManager).toString().equalsIgnoreCase("Camera")) {
defaultCameraPackage = list.get(n).packageName;
break;
}
}
}
我发现以下解决方案及其完美运行。
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.setPackage(defaultCameraPackage);
startActivityForResult(takePictureIntent, actionCode);
您可以通过在上述意图中设置包来过滤默认相机。我通过安装两个应用程序Line Camera和Paper Camera对其进行了测试,这两个应用程序都显示了选择器,但通过上面的代码包过滤仅打开默认相机。
您可以选择特定活动的唯一简单方法是使用显式意图。对于内置相机应用程序,包名称可能不同且取决于设备