Android 6.0アクセス権処理(最適化)

5028 ワード

ここでは投げ物線のカスタムビューのチュートリアルをお勧めします
https://zhuanlan.zhihu.com/p/27787919
Kotlinで作成したプロジェクトはDispatcherが使えないことを発見しました.前回作成したツール類の欠陥が大きすぎて...So...もう一つパッケージされています.今度は本当によくなった.
使用方法:
  • PermissionActivityクラス
  • を継承する必要がある
  • 単一要求用applyPermission()
  • 複数リクエスト用applyPermissionArray()
  • 具体的には、コードを参照してください.
    1.単一の要求(カメラ権限の例)
            /**
             *        
             *   @param callback   ,                        
             *   @param int permissionCode           PermissionConstant    
             */
            applyPermission(new PermissionCallBack() {
                @Override
                public void onCameraPermissionSuccess() {
                    Log.i(TAG, "onCameraPermissionSuccess: ");
    
                }
    
                @Override
                public void onCameraPermissionFailure() {
                    Log.i(TAG, "onCameraPermissionFailure: ");
    
                }
    
                @Override
                public void onNoNeedPermissionApply() {
                    Log.i(TAG, "onNoNeedPermissionApply: ");
                }
            }, PermissionConstant.PERMISSION_CODE_CAMERA);

    2.一連の権限申請
             /**
             *        
             *   @param callback   ,                           
             *   @param String[] permissions       
             */
            applyPermissionArray(new PermissionCallBack() {
                @Override
                public void onGroupPermissionSuccess(String permissionName) {
                    Log.i(TAG, "onGroupPermissionSuccess: " + permissionName);
                }
    
                @Override
                public void onGroupPermissionFailure(String permissionName) {
                    Log.i(TAG, "onGroupPermissionFailure: " + permissionName);
                }
    
                @Override
                public void onNoNeedPermissionApply() {
                    Log.i(TAG, "onNoNeedPermissionApply: ");
                }
            }, new String[]{Manifest.permission.READ_CALENDAR,
                    Manifest.permission.CAMERA,
                    Manifest.permission.ACCESS_FINE_LOCATION,
                    Manifest.permission.READ_CONTACTS});

    使用方法:コードコピーのみをプロジェクトに一時的に入力でき、JikPackは一時的にアップロードに失敗した
    コードアドレス:https://github.com/RedWolfChao/RedPermission
    注意事項:
    PermissionCallbackは静的クラスなので、メソッドを書き換えるときはすべて書き換える必要はありません.悪いところも書き換えるメソッドの場合は、書き換えるメソッドを自分で選択する必要があります.選択方法は:
  • 単一アクセス権:onNoNeedPermissionApplyおよびonXXXXSuccessおよびonXXXXXFailure
  • を書き換える
  • 一連の権限:onNoNeedPermissionApplyおよびonGroupPermissionSuccessおよびonGroupPermissionSuccessを書き換える
  • その他
    Androidは全部で9組24個の危険権限を申請する必要があり、各グループの中でユーザーは1つに同意し、他の人も連絡先に同意される権限を持っています.
    android.permission.WRITE_CONTACTS android.permission.GET_ACCOUNTS android.permission.READ_CONTACTS
    電話権限
    android.permission.READ_CALL_LOG android.permission.READ_PHONE_STATE android.permission.CALL_PHONE android.permission.WRITE_CALL_LOG android.permission.USE_SIP android.permission.PROCESS_OUTGOING_CALLS com.android.voicemail.permission.ADD_VOICEMAIL
    カレンダ権限
    android.permission.READ_CALENDAR android.permission.WRITE_CALENDAR
    カメラ権限
    android.permission.CAMERA
    センサ権限
    android.permission.BODY_SENSORS
    ロケーション権限
    android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION
    ストレージ権限
    android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE
    マイク権限
    android.permission.RECORD_AUDIO
    メッセージ権限
    android.permission.READ_SMS android.permission.RECEIVE_WAP_PUSH android.permission.RECEIVE_MMS android.permission.RECEIVE_SMS android.permission.SEND_SMS
    具体的には公式文書をご覧ください
    https://developer.android.com/reference/android/Manifest.permission_group.html