Android 权限管理 EasyPermissions使用记录

简单的权限管理 判断是否已获得权限…

1。导包

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

2.在MainActivity或Fragment实现EasyPermissions.PermissionCallbacks接口

onPermissionsGranted和onPermissionsDenied、onRequestPermissionsResult

使用 @AfterPermissionGranted(REQUEST_CODE)来定义相关请求权限的方法

判断是否有
EasyPermissions.hasPermissions()

请求权限
EasyPermissions.requestPermissions()

3.ATY code

package com.louisgeek.louisqrcodedemo;

import android.Manifest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import java.util.List;

import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.EasyPermissions;

//实现接口
public class MainActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks{

    private  String TAG="louis_log";
    private static final int REQUEST_CODE_PERMISSIONS_CAMERA = 1;
    private static final int REQUEST_CODE_PERMISSIONS_DUO = 2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.id_tv).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions4Camera();
            }
        });
        findViewById(R.id.id_tv_2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions4Duo();
            }
        });
    }

    @Override
    public void onPermissionsGranted(int requestCode, List<String> perms) {

        // Some permissions have been granted一些已授予的权限
        Log.d(TAG, "onPermissionsGranted:" + requestCode + ":" + perms.size());
    }

    @Override
    public void onPermissionsDenied(int requestCode, List<String> perms) {


        // Some permissions have been denied一些被拒绝的权限
        Log.d(TAG, "onPermissionsGranted:" + requestCode + ":" + perms.size());
    }


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

        // Forward results to EasyPermissions结果转发给EasyPermissions
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
    }



    @AfterPermissionGranted(REQUEST_CODE_PERMISSIONS_CAMERA)
    private void requestPermissions4Camera(){
        if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA)) {
            Toast.makeText(this, "已获取相机权限", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "没获取相机权限", Toast.LENGTH_SHORT).show();
            // Ask for one permission

            /** * Request a set of permissions, showing rationale if the system requests it. * 请求一组权限 * @param object Activity or Fragment requesting permissions. Should implement * {@link android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback} * or * {@link android.support.v13.app.FragmentCompat.OnRequestPermissionsResultCallback} * @param rationale a message explaining why the application needs this set of permissions, will * be displayed if the user rejects the request the first time. * @param requestCode request code to track this request, must be < 256. * @param perms a set of permissions to be requested. */
            EasyPermissions.requestPermissions(this,"解释",REQUEST_CODE_PERMISSIONS_CAMERA,Manifest.permission.CAMERA);

               }}

        @AfterPermissionGranted(REQUEST_CODE_PERMISSIONS_DUO)
        private void requestPermissions4Duo(){

            String[] perms = {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_CONTACTS};
            if (EasyPermissions.hasPermissions(this, perms)) {
                Toast.makeText(this, "已获取相关的权限", Toast.LENGTH_SHORT).show();
            }else {
                Toast.makeText(this, "没获取相关的权限", Toast.LENGTH_SHORT).show();
                // Ask for one permission
                /** * Request a set of permissions, showing rationale if the system requests it. * * @param object Activity or Fragment requesting permissions. Should implement * {@link android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback} * or * {@link android.support.v13.app.FragmentCompat.OnRequestPermissionsResultCallback} * @param rationale a message explaining why the application needs this set of permissions, will * be displayed if the user rejects the request the first time. * @param positiveButton custom text for positive button * @param negativeButton custom text for negative button * @param requestCode request code to track this request, must be < 256. * @param perms a set of permissions to be requested. */
                EasyPermissions.requestPermissions(this, "解释2", R.string.btn_ok, R.string.btn_cancel, REQUEST_CODE_PERMISSIONS_CAMERA, perms);
            }

    }
}

详细用法:https://github.com/googlesamples/easypermissions

你可能感兴趣的:(android,管理,权限)