android如何拍照只能使用系统相机

时间:2012-12-05 06:32:53

标签: android android-intent camera

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE )

如果我安装了其他相机应用程序,这个意图会显示一个相机列表供选择,所以我的问题是如何直接调用系统相机,而不是选择其他相机。

1 个答案:

答案 0 :(得分:3)

你可以试试这个,

Intent camIntent = new Intent("android.media.action.IMAGE_CAPTURE");
        Intent systemCamIntent = new Intent(camIntent);
        systemCamIntent.setComponent(new ComponentName("com.sec.android.app.camera", "com.sec.android.app.camera.Camera"));
        startActivity(systemCamIntent);

您可以使用下面的代码获取相机列表,然后您应该创建一个逻辑来了解哪个是不同房间的系统相机。

List<Intent> yourIntentsList = new ArrayList<Intent>();
        List<ResolveInfo> listCam = packageManager.queryIntentActivities(camIntent, 0);
        for (ResolveInfo res : listCam) {           
            finalIntent = new Intent(camIntent);
            finalIntent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
            yourIntentsList.add(finalIntent);
        }