關(guān)于Android權(quán)限申請

1、手動申請
Android6.0之后系統(tǒng)對權(quán)限的管理更加嚴(yán)格了,不但要在AndroidManifest中添加,還要在應(yīng)用運(yùn)行的時(shí)候動態(tài)申請。下面是動態(tài)申請SD卡讀寫的權(quán)限
在AndroidManifest中添加SD卡讀寫的權(quán)限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

動態(tài)申請權(quán)限

private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            "android.permission.READ_EXTERNAL_STORAGE",
            "android.permission.WRITE_EXTERNAL_STORAGE" };


    public static void verifyStoragePermissions(Activity activity) {

        try {
        //檢測是否有寫的權(quán)限
            int permission = ActivityCompat.checkSelfPermission(activity,
                    "android.permission.WRITE_EXTERNAL_STORAGE");
            if (permission != PackageManager.PERMISSION_GRANTED) {
        // 沒有寫的權(quán)限,去申請寫的權(quán)限,會彈出對話框
                ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

把verifyStoragePermissions方法放在onCreate方法中即可。

2、默認(rèn)申請
https://github.com/Karumi/Dexter
通過上面庫,接入方式:
在build.gradle加入

dependencies{
    implementation 'com.karumi:dexter:5.0.0'
}

然后在mainactivity加入

static final String[] PERMISSIONS = new String[]{
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.READ_EXTERNAL_STORAGE,
    };
private void initPermissions() {
        Dexter.withActivity(this).withPermissions(PERMISSIONS)
                .withListener(new MultiplePermissionsListener() {
                    @Override
                    public void onPermissionsChecked(MultiplePermissionsReport report) {
                        if (report.areAllPermissionsGranted()){
                            Toast.makeText(getApplication(),"權(quán)限獲取成功!",Toast.LENGTH_LONG).show();
                        }
                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
                    }
                }).check();
    }

然后在oncreate()中加入initPermissions()就行了

以上兩種方法,親測可用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android系統(tǒng)權(quán)限 Android 是一個(gè)權(quán)限分隔的操作系統(tǒng),其中每個(gè)應(yīng)用都有其獨(dú)特的系統(tǒng)標(biāo)識(Linux 用...
    ZHLeo閱讀 7,572評論 3 16
  • 一,前言 最近App的targetSdkVersion提升到23以上,因此需要處理動態(tài)權(quán)限的問題,因此網(wǎng)上學(xué)習(xí)了動...
    gaohappy閱讀 2,458評論 0 1
  • 前幾天在網(wǎng)上找了找Android動態(tài)獲取權(quán)限的文章和視頻,自己整理了一下。幾天看一位大神說真正的程序員是有著分享精...
    我兜里有糖喲閱讀 16,727評論 9 20
  • 2017年5月17日 Kylin_Wu 標(biāo)注(★☆)為考綱明確給出考點(diǎn)(必考) 常見手機(jī)系統(tǒng)(★☆) And...
    Azur_wxj閱讀 1,959評論 0 10
  • 哎呀呀 ,馬上就要面臨找工作了,媛媛心里緊張呀. 作為一個(gè)即將畢業(yè)的Android程序媛,開始面臨找工作了,...
    左神話閱讀 5,156評論 7 59

友情鏈接更多精彩內(nèi)容