【发布时间】:2021-08-15 08:38:21
【问题描述】:
我只是想知道是否有任何方法可以仅使用意图来启动后置摄像头。我不想使用intent.putextra 的东西。所以基本上我的代码应该是这样的
final Intent cameraIntent = new Intent();
cameraIntent.putExtra("android.intent.extras.CAMERA_FACING", 0);
cameraIntent.setPackage(defaultCameraPackage);
cameraIntent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUrl);
((Activity) mContext).startActivityForResult(cameraIntent, CHOOSE_PHOTO_INTENT);
但上面的代码有时会启动前置摄像头。我想直接启动后置摄像头。如果在 Android 中可行,请帮助我。
为了打开默认相机,我使用以下代码:
public void defaultpackage() {
PackageManager packageManager = mContext.getPackageManager();
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) {
if (list.get(n).loadLabel(packageManager).toString()
.equalsIgnoreCase("Camera")) {
defaultCameraPackage = list.get(n).packageName;
Log.e("package", "" + defaultCameraPackage);
break;
}
}
}
}
【问题讨论】:
-
为了打开相机为什么这么多代码兄弟。无论是从活动还是片段中,只要满足您的条件(例如单击哪个按钮),您就会触发意图。
-
@Thirumalai 我只想打开设备默认摄像头。
-
默认前置摄像头将在您使用 val intent 时打开:Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) startActivity(intent)。如果你想要特定的正面或背面,你已经通过了相应的额外放置
标签: android camera android-camera android-camera-intent camera-flash