尝试在 Kotlin 中使用相机拍照时如何解决 java.lang.SecurityException?
How to solve java.lang.SecurityException while trying to take a photo using camera in Kotlin?
我正在尝试使用以下功能在 kotlin 中拍照:
@JavascriptInterface
fun generate() {
val photoUri = Uri.fromFile(photo)
val imageCaptureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
startActivityForResult(imageCaptureIntent, GO_TO_CARD_REQUEST_CODE)
}
我的清单已授予以下权限和功能:
<uses-feature android:name="android.hardware.camera.any" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
启动 activity 时,Logcat 中显示异常:
“java.lang.SecurityException:权限被拒绝:启动 Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera”。相机应用程序甚至不启动。如何解决这个错误?感谢您的帮助。
CAMERA
权限是指您是否通过 Android SDK 的相机 API 或它们周围的库直接在您的应用中使用相机。 ACTION_IMAGE_CAPTURE
启动一个外置摄像头应用程序 — 那个 应用程序使用 API 并且需要权限。因此,最简单的解决方案是删除 CAMERA
权限。
我正在尝试使用以下功能在 kotlin 中拍照:
@JavascriptInterface
fun generate() {
val photoUri = Uri.fromFile(photo)
val imageCaptureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
startActivityForResult(imageCaptureIntent, GO_TO_CARD_REQUEST_CODE)
}
我的清单已授予以下权限和功能:
<uses-feature android:name="android.hardware.camera.any" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
启动 activity 时,Logcat 中显示异常: “java.lang.SecurityException:权限被拒绝:启动 Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera”。相机应用程序甚至不启动。如何解决这个错误?感谢您的帮助。
CAMERA
权限是指您是否通过 Android SDK 的相机 API 或它们周围的库直接在您的应用中使用相机。 ACTION_IMAGE_CAPTURE
启动一个外置摄像头应用程序 — 那个 应用程序使用 API 并且需要权限。因此,最简单的解决方案是删除 CAMERA
权限。