Android请求权限回拨 [英] Android Request Permission Callback
问题描述
我试图通过 https://developers.google.com/实现Android权限android / guides / permissions
几个问题:
1)回调函数onRequestPermissionResult - 其中的参数是String []权限和int [ ] grantResults从?
2)我一直为grantResults和String []权限获得空值
3)我已经将const REQUEST_LOCATION的值设置为0 - 这个const的值是多少?
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED){
//立即检查权限
ActivityCompat.requestPermissions(this,
new String [] {Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_LOCATION);
} else {
//已授予权限,照常继续
位置myLocation =
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
}
一个不相关的问题...获取Google地图API密钥时需要设置SHA-1的值或者是可选的,只是将键限制在android中。
谢谢。
public void onRequestPermissionsResult(int requestCode,
String [] permissions,
int [] grantResults)
public class RequestUserPermission {
私人活动活动;
//存储权限
private static final int REQUEST_PERMISSION = 1;
private static String [] PERMISSIONS = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
public RequestUserPermission(Activity activity){
this.activity = activity;
$ b public boolean verifyStoragePermissions(){
//检查我们是否有写入权限
int permissionWrite = ActivityCompat.checkSelfPermission(activity,Manifest.permission.WRITE_EXTERNAL_STORAGE) ;
int permissionRead = ActivityCompat.checkSelfPermission(activity,Manifest.permission.READ_EXTERNAL_STORAGE); $(b)
$ b if((permissionWrite!= PackageManager.PERMISSION_GRANTED)||
(permissionRead!= PackageManager.PERMISSION_GRANTED)){
//我们没有权限,所以提示用户
ActivityCompat.requestPermissions(
activity,
PERMISSIONS,
REQUEST_PERMISSION
);
返回false;
} else {
return true;
}
}
public void providePermission(){
verifyStoragePermissions();
$ b public void forceFullOpenPermission(){
if(!verifyStoragePermissions()){
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts(package,activity.getPackageName(),null);
intent.setData(uri);
activity.startActivityForResult(intent,REQUEST_PERMISSION);
在您的活动中
RequestUserPermission requestUserPermission = new
RequestUserPermission(DashBoard.this);
requestUserPermission.verifyStoragePermissions();
如果您想强制开放权限 b
requestUserPermission.forceFullOpenPermission();
I'm trying to implement Android permissions from https://developers.google.com/android/guides/permissions
A couple of ques: 1) The callback onRequestPermissionResult - where are the parameters String[] permissions and int[]grantResults from? 2) I keep getting null values for grantResults and String[] permissions 3) I have set the value of the const REQUEST_LOCATION to 0 - does it matter what the value of this const is?
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// Check Permissions Now
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_LOCATION);
} else {
// permission has been granted, continue as usual
Location myLocation =
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
}
One unrelated ques...when getting a google map API key is it required to set the SHA-1 value or is that optional and just limits the key to android.
Thanks.
public void onRequestPermissionsResult(int requestCode,
String[] permissions,
int[] grantResults)
public class RequestUserPermission {
private Activity activity;
// Storage Permissions
private static final int REQUEST_PERMISSION = 1;
private static String[] PERMISSIONS = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
public RequestUserPermission(Activity activity) {
this.activity = activity;
}
public boolean verifyStoragePermissions() {
// Check if we have write permission
int permissionWrite = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int permissionRead = ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE);
if ((permissionWrite != PackageManager.PERMISSION_GRANTED) ||
(permissionRead != PackageManager.PERMISSION_GRANTED)) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS,
REQUEST_PERMISSION
);
return false;
}else{
return true;
}
}
public void providePermission(){
verifyStoragePermissions();
}
public void forceFullOpenPermission(){
if(!verifyStoragePermissions()){
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
intent.setData(uri);
activity.startActivityForResult(intent, REQUEST_PERMISSION);
}
}
In your Activity
RequestUserPermission requestUserPermission = new
RequestUserPermission(DashBoard.this);
requestUserPermission.verifyStoragePermissions();
If you want to forceful open permission
requestUserPermission.forceFullOpenPermission();
这篇关于Android请求权限回拨的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!