Android:用EasyPermissions快速獲取權限


用EasyPermissions可以方便的請求多個權限.

最近項目中碰到的代碼.貼在這里當個例子.

大神的解說:https://blog.csdn.net/hexingen/article/details/78504814

 

在build.gradle中添加依賴:

dependencies {
    compile 'pub.devrel:easypermissions:1.0.1'
}

 

 

最開始還是在AndroidManifest.xml寫進自己需要的權限:

   <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

 

在Activity中.

首先建一個String數組,把需要的權限都加進去:

private String[] mPerms = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.CAMERA, Manifest.permission.ACCESS_WIFI_STATE};

private static final int PERMISSIONS = 100;  //請求碼
 

請求權限:

//請求所需權限
    @AfterPermissionGranted(PERMISSIONS)
    private void requestPermission() {
        if (EasyPermissions.hasPermissions(this, mPerms)) {
            //Log.d(TAG, "onClick: 獲取讀寫內存權限,Camera權限和wifi權限");
        } else {
            EasyPermissions.requestPermissions(this, "獲取讀寫內存權限,Camera權限和wifi權限", PERMISSIONS, mPerms);
    //
  • 第一個參數:Context對象
  • 第二個參數:權限彈窗上的文字提示語。告訴用戶,這個權限用途。
  • 第三個參數:這次請求權限的唯一標示,code。
  • 第四個參數 : 一些系列的權限

        }
    }

在onResume()中調用requestPermission():

 protected void onResume() {
        super.onResume();
        requestPermission();
}

 

 

當請求成功是調用這個方法:

@Override
    public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
        if (requestCode == PERMISSIONS) {
            Log.d(TAG, "onPermissionsGranted: 獲取權限");
        }
    }

請求被拒絕時調用這個方法:

@Override
    public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
        Log.d(TAG, "onPermissionsDenied: 拒絕權限");
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
            new AppSettingsDialog.Builder(this)
                    .setRationale("沒有該權限,此應用程序可能無法正常工作。打開應用設置屏幕以修改應用權限")
                    .setTitle("必需權限")
                    .build()
                    .show();
        }
    }    

 

權限結果是回調在onRequestPermissionsResult()方法中:

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM