安卓 運行時請求權限(視頻、相機、存儲)

private boolean requestVideo(Activity activity){
    if (afterM()){
        final List<String> permissionsList = new ArrayList<>();
        if ((activity.checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)) permissionsList.add(Manifest.permission.CAMERA);
        if ((activity.checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED)) permissionsList.add(Manifest.permission.RECORD_AUDIO);
        if (permissionsList.size() != 0){
            activity.requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
                    REQUEST_CODE_ASK_PERMISSIONS);
            return false;
        }
        int hasPermission = activity.checkSelfPermission(Manifest.permission.CAMERA);
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            activity.requestPermissions(new String[]{Manifest.permission.CAMERA},
                    REQUEST_CODE_ASK_PERMISSIONS);
            return false;
        }
    }
    return true;
}

private boolean requestCamera(Activity activity){
    if (afterM()){
        int hasPermission = activity.checkSelfPermission(Manifest.permission.CAMERA);
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            activity.requestPermissions(new String[]{Manifest.permission.CAMERA},
                    REQUEST_CODE_ASK_PERMISSIONS);
            return false;
        }
    }
    return true;
}

private boolean requestStorage(Activity activity){
    if (afterM()){
        int hasPermission = activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (hasPermission != PackageManager.PERMISSION_GRANTED) {
            activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    REQUEST_CODE_ASK_PERMISSIONS);
            return false;
        }
    }
    return true;
}

private boolean afterM(){
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}

private boolean requestRtmp() {
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章