在某些拥有Android版>的Android设备中6.0,当我访问相机时,设备相机被打开,当我捕获并接受图片时,相机正在崩溃(再次加载相机)并且我有相机访问权限。可以做些什么?任何想法?
答案 0 :(得分:1)
您需要询问 run time permission ,因为从Android 6.0(API级别23)开始,用户在应用运行时向应用授予权限,而不是在他们安装应用时强>
使用以下代码询问相机的运行时间权限
String permission = android.Manifest.permission.CAMERA;
if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission)
!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(SearchCityClass.this, new String[]
{permission}, 1);
}
现在处理permisiion结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// perform your action here
Toast.makeText(this, "Camera_permission_granted ", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Camera_permission_not_granted ", Toast.LENGTH_SHORT).show();
}
}
}