當用戶拒絕權(quán)限時呢
在BaseActivity()中
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
? ?switch (requestCode){
? ? ? ?case WebApi.WRITE_EXTERNAL_CARD:
? ? ? ? ? ?//處理寫sd卡授權(quán)回調(diào)
? ? ? ? ? ?doWriteExternalCard();
? ? ? ? ? ?break;
? ? ? ?case WebApi.CALL_PHONE_CARD:
? ? ? ? ? ?doCallPhone();
? ? ? ? ? ?break;
? ? ? ?case WebApi.GET_LOCATION_XY:
? ? ? ? ? ?//處理寫sd卡授權(quán)回調(diào)
? ? ? ? ? ?doLoadEmptyWebView();
? ? ? ? ? ?break;
? ?}
用戶拒絕權(quán)限時這個方法不執(zhí)行嗎?如果執(zhí)行,那里面的邏輯是不是不夠嚴謹
2016-12-05
該方法不管允許或拒絕都會被執(zhí)行。但你這種寫法確實不嚴謹
//以下方法為請求權(quán)限。0為權(quán)限組id,而第二個參數(shù)是請求權(quán)限組,權(quán)限組里面包含多個權(quán)限
ActivityCompat.requestPermissions(this, new String[]{
? ?Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
/**
* 權(quán)限處理結(jié)果返回
*
* @param requestCode ?請求組id
* @param permissions ?對應(yīng)id的權(quán)限組
* @param grantResults 權(quán)限組對應(yīng)權(quán)限處理結(jié)果
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
? ?super.onRequestPermissionsResult(requestCode, permissions, grantResults);
? ?switch (requestCode) {//判斷哪個請求權(quán)限組
? ? ? ?case ?0://假設(shè)是0的請求權(quán)限組
? ? ? ? ? ?if(grantResults[0]==PackageManager.PERMISSION_GRANTED){
? ? ? ? ? ? ? ?//請求權(quán)限組里的哪個權(quán)限,這里假設(shè)判斷第一個
? ? ? ? ? ? ? //根據(jù)上述請求方法傳入的權(quán)限組,第一個就是Manifest.permission.READ_EXTERNAL_STORAGE
? ? ? ? ? ?}
? ?}
}
2017-12-28
如果一次請求多個權(quán)限,這種方式是不是有問題呢?