第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法一次請求多個危險權限

無法一次請求多個危險權限

猛跑小豬 2023-06-04 19:44:59
我正在開發(fā)一個收集數(shù)據(jù)進行處理的應用程序,因此它需要多個危險權限(即ACCESS_FINE_LOCATION和READ_PHONE_STATE)。目前它請求一個然后崩潰。我嘗試使用 分別請求權限ActivityCompat.requestPermissions,并且嘗試在數(shù)組中擁有這兩種權限。我也嘗試過使用請求代碼 0,1 和 7,因為我看到這些用于對有關此主題的類似問題的不同回答,但似乎沒有任何改變。 private void setupPermissions() {        ArrayList<String> permissions = new ArrayList<>();        if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {            permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);        }        if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {            permissions.add(Manifest.permission.READ_PHONE_STATE);        }        if (permissions.size()>0){            ActivityCompat.requestPermissions(getActivity(), permissions.toArray(new String[permissions.size()]), 7);        }    }預期成績:首次打開應用程序時,應通過兩個單獨的對話框(一個接一個)或多頁對話框請求兩個權限。該應用程序應按預期運行實際結果:要求第一個允許您繼續(xù)使用該應用程序當您嘗試使用需要第二個的功能時崩潰重新打開應用程序要求第二個允許應用程序正常運行
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

每當您需要權限時調用此 checkAndRequestPermissions() 方法


private boolean checkAndRequestPermissions() {


    int ACCESS_FINE_LOCATION = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);

    int READ_PHONE_STATE = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);


    List<String> listPermissionsNeeded = new ArrayList<>();


    if (READ_PHONE_STATE != PackageManager.PERMISSION_GRANTED) {

        listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE);

    }

    if (ACCESS_FINE_LOCATION != PackageManager.PERMISSION_GRANTED) {

        listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION);

    }


    if (!listPermissionsNeeded.isEmpty()) {

        ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray

                (new String[listPermissionsNeeded.size()]), 101);

        return false;

    }

    return true;

}


查看完整回答
反對 回復 2023-06-04
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

試試下面的代碼?

public static boolean hasPermissions(Context context, String... permissions) {

? ? if (context != null && permissions != null) {

? ? ? ? for (String permission : permissions) {

? ? ? ? ? ? if (ActivityCompat.checkSelfPermission(context, permission) !=?

? ? ? ? ? ? ? ? PackageManager.PERMISSION_GRANTED) {

? ? ? ? ? ? ? ? return false;

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? return true;


}

int PERMISSION_ALL = 1;?

String[] PERMISSIONS = {

? android.Manifest.permission.ACCESS_FINE_LOCATION,?

? android.Manifest.permission.READ_PHONESTATE

};


if(!hasPermissions(this, PERMISSIONS)){

? ? ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);

}


查看完整回答
反對 回復 2023-06-04
  • 2 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號