Android 在允许权限后立即调用方法
我有这样的代码Android 在允许权限后立即调用方法,android,Android,我有这样的代码 public void onClick(View v) { String fileName = edtFileName.getText().toString() ; String content = edtContent.getText().toString(); if (canReadAndWrite()) createFile(fileName,content);
public void onClick(View v) {
String fileName = edtFileName.getText().toString() ;
String content = edtContent.getText().toString();
if (canReadAndWrite())
createFile(fileName,content);
}
当用户单击某个按钮时,应用程序会向他/她请求权限,但canReadAndWrite()方法第一次返回false。我如何解决这个问题?我可以使用onRequestPermissionsResult,但它似乎不合理,因为我不知道用户在哪里单击按钮(如果我们有许多方法和按钮),而且文件名和内容等变量是局部变量,我必须声明另一个变量为全局变量
.
这是我的权限功能代码
if (Build.VERSION.SDK_INT <=23){
return true;
}else {
if (ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED){
return true;
}else {
ActivityCompat.requestPermissions(this
,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1234);
return false;
}
}
if(Build.VERSION.SDK\u INT假设我有三个按钮并调用canReadAndWrite()三次。我怎样才能知道哪个按钮被点击了?你写的方法是为了当我们只有一个命令时不?你可以使用请求代码,在每次调用后给出不同的请求代码,根据该请求代码,你可以做任何你想做的事在你的情况下1234是你的请求代码。为每个按钮更改它点击。
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case 1234:
if(grantResults[0] == == PackageManager.PERMISSION_GRANTED){
//Do what ever you want to do...
}
break;
}
}