1. 程式人生 > >Android基礎——適配安卓6.0新權限系統

Android基礎——適配安卓6.0新權限系統

jsb 安全 認同 相對 選項 blank tar 也會 返回

在安卓6.0版本以後,新的權限系統出現了,為了更好的保護用戶的安全,新的權限系統需要開發者在代碼中手動申請,所以為了適配6.0權限系統,我們不得不學習權限系統

安卓6.0新權限系統分類有兩種

  1. 普通權限(normal):這個權限類型並不直接威脅到用戶的隱私,可以直接在manifest清單裏註冊,系統會幫我們默認授權的
  2. 危險權限 (dangerous):這個可以直接給app訪問用戶一些敏感的數據,不僅需要在manifest清單裏註冊,同時在使用的時候,需要向系統請求授權

危險權限的特點

  • 危險權限是按組分配的,只要同個組的某個權限被同意後,組中的其他權限也會被默認同意

普通權限列表圖

技術分享圖片

危險權限分組圖

技術分享圖片

申請權限很人性化,類似我們的簽證辦手續一樣,其申請步驟有

  1. 申明該權限
  2. 檢查是否已經有該權限
  3. 如果沒有則進行申請權限
  4. 接收申請成功或者失敗回調

① 要使用權限時,別忘了要在manifest中申請

② 申請單一權限

③ 申請多個權限

如要你要同時申請多個權限,那麽可以在requestPermissions傳進要申請的權限即可

④ 判斷安卓6.0系統

為了代碼的嚴謹性,在安卓6.0以下我們就不用手動申請了,這裏就需要判斷一下安卓的版本

很多時候用戶不小心點擊拒絕,或者害怕手機信息被盜而點拒絕,當第二次進入程序時,summary我們要進行相對應的處理,這裏先看下面這個方法的說明

  • shouldShowRequestPermissionRationale()

    1. 第一次請求權限時,用戶拒絕了,調用shouldShowRequestPermissionRationale()後返回true,應該顯示一些為什麽需要這個權限的說明
    2. 用戶在第一次拒絕某個權限後,下次再次申請時,授權的dialog中將會出現“不再提醒”選項,一旦選中勾選了,那麽下次申請將不會提示用戶
    3. 第二次請求權限時,用戶拒絕了,並選擇了“不在提醒”的選項,調用shouldShowRequestPermissionRationale()後返回false

知道了這個方法的原理後,那麽代碼就很快就可以寫出來了,下面就直接貼上完整代碼

實現效果圖

技術分享圖片

Android基礎——適配安卓6.0新權限系統