有意图地启动前置摄像头
Posted
技术标签:
【中文标题】有意图地启动前置摄像头【英文标题】:Launch front camera with intent 【发布时间】:2019-02-08 11:11:17 【问题描述】:我正在尝试用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) 上运行。
这是三星的某种错误还是我的代码有问题。
我发现了一些类似的问题,例如this 和this。但对我来说没有帮助。
【问题讨论】:
你能显示你的清单文件吗..? 添加了@UmangBurman 看起来这是某种错误,三星手机到处都有错误,因为操作系统是完全定制的。国际海事组织。 【参考方案1】:我正在尝试用 Intent 直接打开前置摄像头
Android SDK 中没有这方面的功能。
下面是我的代码
有成百上千种不同的适用于 Android 的相机应用。有些是预装的;有些是用户安装的。没有人必须尊重那些无证的Intent
extras。
此代码不适用于 S6(7.0)。但是它正在 S5、S4、Nexus 6P(8.0) 上运行。
有大约 20,000 多种 Android 设备型号。只有一些人可能有一个预装的相机应用程序来纪念那些无证的Intent
附加功能。
这是三星的某种错误还是我的代码有问题。
三星针对该特定设备的相机应用程序根本不尊重那些未记录的附加功能。
【讨论】:
以上是关于有意图地启动前置摄像头的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.RuntimeException:启动失败(前置摄像头录制)
Android 无法使用前置摄像头录制视频,MediaRecorder 启动失败:-19