EasyPermissions 動態申請權限使用

EasyPermissions 的github地址是:https://github.com/googlesamples/easypermissions 

EasyPermissions 最新版本查詢  https://mvnrepository.com/artifact/pub.devrel/easypermissions?repo=springio-plugins-release

EasyPermissions 集成

dependencies {
 // 權限申請
    compile 'pub.devrel:easypermissions:1.0.1'

}

 

EasyPermissions  使用

請求權限

public class MainActivity extends AppCompatActivity  implements EasyPermissions.PermissionCallbacks {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String[] perms = { Manifest.permission.ACCESS_FINE_LOCATION , Manifest.permission.ACCESS_COARSE_LOCATION };
        if (EasyPermissions.hasPermissions( MainActivity.this , perms)) {
        // Already have permission, do the thing
        } else {
        // Do not have permissions, request them now
        EasyPermissions.requestPermissions( MainActivity.this, "需要定位權限" , PERMISSIONS_ACCESS_LOCATION, perms);
        }

    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        // Forward results to EasyPermissions
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
    }


    @Override
    public void onPermissionsGranted(int requestCode, List<String> perms) {
        // 此處表示權限申請已經成功,可以使用該權限完成app的相應的操作了
        Log.e(TAG , "同意了 權限申請" );
    }

    @Override
    public void onPermissionsDenied(int requestCode, List<String> perms) {
        // 此處表示權限申請被用戶拒絕了,此處可以通過彈框等方式展示申請該權限的原因,以使用戶允許使用該權限

        //(可選的)檢查用戶是否拒絕授權權限,並且點擊了“不再詢問”(測試如果不點擊 不再詢問也會調用這個方法,所以只要拒絕就會調用這個方法)
        //下面的語句,展示一個對話框指導用戶在應用設置裏授權權限
        Log.e(TAG , "拒絕了 權限申請" );
        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
            new AppSettingsDialog.Builder(this)
                    .setTitle("申請權限")
                    .setRationale("應用需要這個權限")
                    .build()
                    .show();
            Log.e(TAG , "引導設置 申請權限" );
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE) {
            // Do something after user returned from app settings screen, like showing a Toast.
            // 當用戶從應用設置界面返回的時候,可以做一些事情,比如彈出一個土司。
            Toast.makeText(this, "權限設置界面返回" , Toast.LENGTH_SHORT).show();
        }

    }

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章