允许权限后立即调用方法

时间:2019-09-04 07:18:03

标签: android

我有这样的代码

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

1 个答案:

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