Android 6.0及以上 WRITE_SETTINGS (修改系統(tǒng)設(shè)置)特殊權(quán)限申請(qǐng)

Android 6.0中,除了危險(xiǎn)權(quán)限不再在安裝后授予,還有兩個(gè)特殊權(quán)限:

  • 設(shè)置懸浮窗: SYSTEM_ALERT_WINDOW
  • 修改系統(tǒng)設(shè)置:WRITE_SETTINGS

修改系統(tǒng)設(shè)置權(quán)限的授權(quán) WRITE_SETTINGS,與其他權(quán)限不同
而是使用startActivityForResult,啟動(dòng)系統(tǒng)設(shè)置的授權(quán)界面來申請(qǐng)

    /**
     * 申請(qǐng)權(quán)限
     */
    private void requestWriteSettings()
    {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
        {
            //大于等于23 請(qǐng)求權(quán)限
            if ( !Settings.System.canWrite(getApplicationContext()))
            {
                Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
                intent.setData(Uri.parse("package:" + getPackageName()));
                startActivityForResult(intent, REQUEST_CODE_WRITE_SETTINGS );
            }
        }else{
            //小于23直接設(shè)置
        }
    }

獲取授權(quán)結(jié)果:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE_WRITE_SETTINGS)
        {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
            {
                  //Settings.System.canWrite方法檢測授權(quán)結(jié)果
                if (Settings.System.canWrite(getApplicationContext()))
                {
                    T.show("獲取了權(quán)限");
                }else{
                    T.show("您拒絕了權(quán)限");
                }
            }
        }

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

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

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