Android基礎——適配安卓6.0新權限系統
阿新 • • 發佈:2018-09-06
jsb 安全 認同 相對 選項 blank tar 也會 返回
在安卓6.0版本以後,新的權限系統出現了,為了更好的保護用戶的安全,新的權限系統需要開發者在代碼中手動申請,所以為了適配6.0權限系統,我們不得不學習權限系統
安卓6.0新權限系統分類有兩種
- 普通權限(normal):這個權限類型並不直接威脅到用戶的隱私,可以直接在manifest清單裏註冊,系統會幫我們默認授權的
- 危險權限 (dangerous):這個可以直接給app訪問用戶一些敏感的數據,不僅需要在manifest清單裏註冊,同時在使用的時候,需要向系統請求授權
危險權限的特點
- 危險權限是按組分配的,只要同個組的某個權限被同意後,組中的其他權限也會被默認同意
普通權限列表圖
危險權限分組圖
申請權限很人性化,類似我們的簽證辦手續一樣,其申請步驟有
- 申明該權限
- 檢查是否已經有該權限
- 如果沒有則進行申請權限
- 接收申請成功或者失敗回調
① 要使用權限時,別忘了要在manifest中申請
② 申請單一權限
③ 申請多個權限
如要你要同時申請多個權限,那麽可以在requestPermissions傳進要申請的權限即可
④ 判斷安卓6.0系統
為了代碼的嚴謹性,在安卓6.0以下我們就不用手動申請了,這裏就需要判斷一下安卓的版本
很多時候用戶不小心點擊拒絕,或者害怕手機信息被盜而點拒絕,當第二次進入程序時,summary我們要進行相對應的處理,這裏先看下面這個方法的說明
-
shouldShowRequestPermissionRationale()
- 第一次請求權限時,用戶拒絕了,調用shouldShowRequestPermissionRationale()後返回true,應該顯示一些為什麽需要這個權限的說明
- 用戶在第一次拒絕某個權限後,下次再次申請時,授權的dialog中將會出現“不再提醒”選項,一旦選中勾選了,那麽下次申請將不會提示用戶
- 第二次請求權限時,用戶拒絕了,並選擇了“不在提醒”的選項,調用shouldShowRequestPermissionRationale()後返回false
知道了這個方法的原理後,那麽代碼就很快就可以寫出來了,下面就直接貼上完整代碼
實現效果圖
Android基礎——適配安卓6.0新權限系統