Android 6.0权限和目标
我需要将新的许可添加到一个旧项目中,该项目仍然必须坚持使用ant building。以下是以前的配置: 项目属性:Android 6.0权限和目标,android,Android,我需要将新的许可添加到一个旧项目中,该项目仍然必须坚持使用ant building。以下是以前的配置: 项目属性: target=android-23 AndroidManifest.xml: 我将AndroidManifest.xml更改为 但发现在我的Android 6.0手机上,它仍然警告我,我的应用程序与最新的Android许可要求不兼容。它的行为就好像它真的针对23岁以前的儿童 那么有什么解决方案吗?我只是分享了添加权限检查的代码,这是自MarshnAllow以来的一个强制性过程。
target=android-23
AndroidManifest.xml:
我将AndroidManifest.xml更改为
但发现在我的Android 6.0手机上,它仍然警告我,我的应用程序与最新的Android许可要求不兼容。它的行为就好像它真的针对23岁以前的儿童
那么有什么解决方案吗?我只是分享了添加权限检查的代码,这是自MarshnAllow以来的一个强制性过程。例如,我检查是否允许访问摄像头
private void launchCamera() {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MyActivity.this,
Manifest.permission.CAMERA)) {
// Showing explanation to user to require permission
// <Build a dialog here. Following shows how to handle dialog clicks>
dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Yes, user wants to give permission
dialog.dismiss();
ActivityCompat.requestPermissions(MyActivity.this,
new String[] {Manifest.permission.CAMERA},
Constants.PERMISSION_CAMERA);
}
});
alog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// No, user does not want to give permission now
dialog.dismiss();
}
});
} else {
// No explanation needed, requesting for permission now.
ActivityCompat.requestPermissions(this,
new String[] {Manifest.permission.CAMERA},
Constants.PERMISSION_CAMERA);
}
} else {
// Permission to get location has been granted already.
try {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, Constants.CAMERA_CAPTURE_REQUEST);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
Log.e(TAG, "Camera is not found!");
}
}
}
我只是共享代码来添加权限检查,这是自MarshnAllow以来的强制过程。例如,我检查是否允许访问摄像头
private void launchCamera() {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MyActivity.this,
Manifest.permission.CAMERA)) {
// Showing explanation to user to require permission
// <Build a dialog here. Following shows how to handle dialog clicks>
dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Yes, user wants to give permission
dialog.dismiss();
ActivityCompat.requestPermissions(MyActivity.this,
new String[] {Manifest.permission.CAMERA},
Constants.PERMISSION_CAMERA);
}
});
alog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// No, user does not want to give permission now
dialog.dismiss();
}
});
} else {
// No explanation needed, requesting for permission now.
ActivityCompat.requestPermissions(this,
new String[] {Manifest.permission.CAMERA},
Constants.PERMISSION_CAMERA);
}
} else {
// Permission to get location has been granted already.
try {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, Constants.CAMERA_CAPTURE_REQUEST);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
Log.e(TAG, "Camera is not found!");
}
}
}
您有2个选项:1-降低目标API,使用22或更低。2-实现新的权限系统根据本教程@MatPag我已在代码中实现了新的权限系统,并将目标设置为23,但其行为仍与目标更低类似。您有2个选项:1-降低目标API,使用22或更低。2-实现新的权限系统根据本教程@MatPag,我已经在代码中实现了新的权限系统,并将目标设置为23,但它的行为仍然像它的目标更低。