【发布时间】:2017-06-19 10:20:23
【问题描述】:
在我的应用程序中,有一个使用相机捕捉图像的工具。 它适用于 Android 6 之前的所有版本,但它使我的应用在 Android 7.0 版本中崩溃。
清单
<uses-permission android:name="android.permission.CAMERA" />
已添加权限
if (ContextCompat.checkSelfPermission(AddFamilyMemberActivity.this,
android.Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(AddFamilyMemberActivity.this,
new String[]{android.Manifest.permission.CAMERA},
1);
} else {
sendToExternalApp();
}
权限监听器
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == 1 && permissions[0].equals(android.Manifest.permission.CAMERA) &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
sendToExternalApp();
} else if (requestCode == 1 && permissions[0].equals(android.Manifest.permission.CAMERA) &&
grantResults[0] == PackageManager.PERMISSION_DENIED) {
Utilities.showSnackBar("You need to enable camera permission for update profile image", this);
}
}
打开相机的代码
protected void sendToExternalApp()
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
mProcessingPhotoUri = getImageFile();
intent.putExtra(MediaStore.EXTRA_OUTPUT, mProcessingPhotoUri);
activity.startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);
}
崩溃日志
原因: android.content.ActivityNotFoundException:未找到处理 Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 clip={text/uri-list U:file:///storage/emulated/0/DCIM/QDhealth/ 的活动profile.jpg}(有附加功能)}
【问题讨论】:
-
您确定权限也放入您的清单中
-
是的,我已经使用清单权限编辑了我的问题
-
你的日志在哪里?
-
我已经在问题中更新了
-
1) 设备中可能没有摄像头 2) 设备中没有sd卡