我在android studio.i中设计了一个应用程序,在AndroidManifest.xml文件中包含了CAMERA
和READCONTECTS
等所有权限。它在除Marshmallow之外的所有Android版本中都能正常工作。如何默认设置所有权限?
答案 0 :(得分:0)
你需要在java代码工作之前设置权限
示例:
//declaration
private static final Integer CAMERA = 0x1;
//call this
askForPermission(Manifest.permission.CAMERA, CAMERA);
/**
*
* @param permission
* @param requestCode
*/
private void askForPermission(String permission, Integer requestCode) {
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) {
//This is called if user has denied the permission before
//In this case I am just asking the permission again
ActivityCompat.requestPermissions(this, new String[]{permission}, requestCode);
} else {
ActivityCompat.requestPermissions(this, new String[]{permission}, requestCode);
}
} else {
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(ActivityCompat.checkSelfPermission(this, permissions[0]) ==
PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
}
}else{
Toast.makeText(this, "Permission not granted", Toast.LENGTH_SHORT).show();
}
}