How to check permission in fragment

前端 未结 9 1934
执念已碎
执念已碎 2020-12-01 03:49

I want to check a permission inside a fragment.

my code:

        // Here, thisActivity is the current activity
        if (ContextCompat.checkSelfPe         


        
9条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-01 04:43

    Fragment has requestPermissions() and onRequestPermissionsResult() methods, use it.

    But checkSelfPermission() is from ActivityCompat (not require Activity, only Context).

    if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        requestPermissions( //Method of Fragment
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
            REQUEST_PERMISSIONS_CODE_WRITE_STORAGE
        );
    } else {
        downloadImage();
    }
    
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if (requestCode == REQUEST_PERMISSIONS_CODE_WRITE_STORAGE) {
            if (permissions[0].equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                proceedWithSdCard();
            }
        }
    }
    

提交回复
热议问题