我有这样的代码
public void onClick(View v) {
String fileName = edtFileName.getText().toString() ;
String content = edtContent.getText().toString();
if (canReadAndWrite())
createFile(fileName,content);
}
当用户单击按钮时,应用程序向他/她征求许可,但是第一次,canReadAndWrite()方法返回false。我该如何解决这个问题?我可以使用onRequestPermissionsResult,但是这似乎是不合理的,因为我不知道用户在哪里单击了按钮(如果我们有很多方法和按钮),像fileName和content这样的变量也是本地的,我必须将另一个变量声明为global 。 这是我的许可功能代码
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;
}
}
答案 0 :(得分:0)
@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;
}
}