Android RxPermission管理權(quán)限

前提:
android6.0以上 并且tragetVersion >22的時(shí)候需要主動(dòng)去做權(quán)限管理

基于RxPermission1.0 & RxJava 1.0
RxPermission 1.0: https://github.com/tbruyelle/RxPermissions
rxjava 1.0 :https://github.com/ReactiveX/RxJava/tree/1.x
兩個(gè)都必須要導(dǎo)入,否則找不到類。

package com.zy.demo;

import android.Manifest;
import android.app.Activity;
import android.util.Log;

import com.tbruyelle.rxpermissions.Permission;
import com.tbruyelle.rxpermissions.RxPermissions;

import rx.functions.Action1;

/**
 * @author luchao
 * @time 18/6/28 上午10:43
 */

/**
 * danger permission danger permission 這些是必須要要去主動(dòng)獲取的
 * group:android.permission-group.CONTACTS(聯(lián)系人)
 permission:android.permission.WRITE_CONTACTS
 permission:android.permission.GET_ACCOUNTS
 permission:android.permission.READ_CONTACTS


 group:android.permission-group.PHONE(電話)
 permission:android.permission.READ_CALL_LOG
 permission:android.permission.READ_PHONE_STATE
 permission:android.permission.CALL_PHONE
 permission:android.permission.WRITE_CALL_LOG
 permission:android.permission.USE_SIP
 permission:android.permission.PROCESS_OUTGOING_CALLS
 permission:com.android.voicemail.permission.ADD_VOICEMAIL

 group:android.permission-group.CALENDAR(日歷)
 permission:android.permission.READ_CALENDAR
 permission:android.permission.WRITE_CALENDAR

 group:android.permission-group.CAMERA(相機(jī))
 permission:android.permission.CAMERA

 group:android.permission-group.SENSORS(傳感器)
 permission:android.permission.BODY_SENSORS

 group:android.permission-group.LOCATION(位置)
 permission:android.permission.ACCESS_FINE_LOCATION
 permission:android.permission.ACCESS_COARSE_LOCATION

 group:android.permission-group.STORAGE(存儲(chǔ)卡)
 permission:android.permission.READ_EXTERNAL_STORAGE
 permission:android.permission.WRITE_EXTERNAL_STORAGE

 group:android.permission-group.MICROPHONE(麥克風(fēng))
 permission:android.permission.RECORD_AUDIO

 group:android.permission-group.SMS(短信)
 permission:android.permission.READ_SMS
 permission:android.permission.RECEIVE_WAP_PUSH
 permission:android.permission.RECEIVE_MMS
 permission:android.permission.RECEIVE_SMS
 permission:android.permission.SEND_SMS
 permission:android.permission.READ_CELL_BROADCASTS
 */
public class PermissionsUtil {
    private static final String TAG = "TT";

    /**
     * 初始化的時(shí)候使用,請求固定的權(quán)限列表
     * @param activity
     */
    public static void requestPermissionList(Activity activity) {
        new RxPermissions(activity)
                .requestEach(
                        Manifest.permission.WRITE_EXTERNAL_STORAGE,
                        Manifest.permission.READ_PHONE_STATE
                ).subscribe(new Action1<Permission>() {
                    @Override
                    public void call(Permission permission) {
                        if(permission.granted){
                            Log.d(TAG, "has permission1111");

                        }else{
                            Log.d(TAG, "no permission2222");
                        }

                    }
                });
    }


    /**
     * 當(dāng)調(diào)用某個(gè)放法,如打開相機(jī)的時(shí)候,如果之前沒有授權(quán),需要再次獲取權(quán)限,然后產(chǎn)生回調(diào)。
     * @param activity
     */
    public static void requestPermissionSingle(Activity activity, String permission, Action1<Permission>action1) {
        new RxPermissions(activity)
                .requestEach(permission
                ).subscribe(action1);
    }


    /**
     * 當(dāng)調(diào)用某個(gè)放法,如獲取deviceId時(shí)候,如果之前沒有授權(quán),需要再次獲取權(quán)限,不需要回調(diào)。
     * @param activity
     */
    public static void requestPermissionSingle(Activity activity, String permission) {
        new RxPermissions(activity)
                .request(permission
                ).subscribe(new Action1<Boolean>() {
            @Override
            public void call(Boolean isPermission) {

            }
        });
    }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容