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;
    }
}