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

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

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

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

    /**
     * 申請權(quán)限
     */
    private void requestWriteSettings()
    {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
        {
            //大于等于23 請求權(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直接設置
        }
    }

獲取授權(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)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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