故意启动前置摄像头

时间:2018-09-03 11:34:56

标签: java android android-camera samsung-mobile android-camera2

我正在尝试使用Intent直接打开前置摄像头。下面是我的代码-

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            intent.putExtra("android.intent.extras.CAMERA_FACING", android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);

            intent.putExtra("android.intent.extras.LENS_FACING_FRONT", 1);
            intent.putExtra("android.intent.extra.USE_FRONT_CAMERA", true);
        }

我的清单文件:-

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="some.package">
    <uses-permission android:name="android.permission.INTERNET" />
    <!--
         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
         Google Maps Android API v2, but you must specify either coarse or fine
         location permissions for the 'MyLocation' functionality. 
    -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    <uses-feature android:name="android.hardware.camera.front" android:required="false" />

此代码不适用于S6(7.0)。但是,它可以在S5,S4,Nexus 6P(8.0)上运行。

这是三星的一种错误还是我的代码有问题?

我发现了一些类似的问题,例如thisthis。但对我而言没有帮助。

1 个答案:

答案 0 :(得分:4)

  

我正在尝试使用Intent直接打开前置摄像头

Android SDK中没有任何内容。

  

下面是我的代码

可用于Android的数百甚至数千个不同的相机应用程序。有些是预装的。有些是用户安装的。没有人必须尊重那些没有证件的Intent附加功能。

  

此代码不适用于S6(7.0)。但是,它可以在S5,S4,Nexus 6P(8.0)上运行。

有约20,000多种Android设备型号。只有一些人可能预先安装了相机应用程序,以兑现那些未公开的Intent附加功能。

  

这是三星的一种错误还是我的代码有问题?

三星针对该特定设备的相机应用根本无法兑现那些未记录的附加功能。