Android6.0以上動態許可權-AndPermission
阿新 • • 發佈:2019-02-11
隨便寫一下記個筆記
依賴:
implementation 'com.yanzhenjie:permission:1.0.1'
//6.0以上動態申請許可權 private void initAndPermission(){ AndPermission.with(this) .requestCode(101) .permission(Manifest.permission.WRITE_EXTERNAL_STORAGE) .rationale(mRationaleListener) .send(); mRationaleListener= new RationaleListener() { @Override public void showRequestPermissionRationale(int requestCode, final Rationale rationale) { new AlertDialog.Builder(MainActivity.this) .setTitle("友好提醒") .setMessage("該應用需要SD卡許可權") .setPositiveButton("同意", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); rationale.resume();// 使用者同意繼續申請。 } }) .setNegativeButton("拒絕", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); rationale.cancel(); // 使用者拒絕申請。 } }).show(); } }; } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { // 只需要呼叫這一句,剩下的 AndPermission 自動完成。 AndPermission.onRequestPermissionsResult(this, requestCode, permissions, grantResults); } // 成功回撥的方法,用註解即可,裡面的數字是請求時的 requestCode。 @PermissionYes(101) private void getSDYes() { // 申請許可權成功,可以去做點什麼了。 Toast.makeText(this, "獲取SD卡許可權成功", Toast.LENGTH_SHORT).show(); } // 失敗回撥的方法,用註解即可,裡面的數字是請求時的 requestCode。 @PermissionNo(101) private void getSDNo() { // 申請許可權失敗,可以提醒一下使用者。 //finish(); Toast.makeText(this, "獲取SD卡許可權失敗", Toast.LENGTH_SHORT).show(); }