【发布时间】:2021-01-04 01:01:05
【问题描述】:
我正在尝试使用以下功能在 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" />
启动活动时,Logcat 中会显示异常: “java.lang.SecurityException:权限拒绝:启动意图 { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera”。相机应用程序甚至没有启动。如何解决这个错误?感谢您的帮助。
【问题讨论】:
-
删除
CAMERA权限。你不需要那个来使用ACTION_IMAGE_CAPTURE。