1. 程式人生 > >Android 6.0 app的許可權申請

Android 6.0 app的許可權申請

作者:Henry

android 6.0版本之後,系統不會在軟體安裝的時候就賦予該app所有其申請的許可權,對於一些危險級別的許可權,app需要在執行時一個一個詢問使用者授予許可權。那麼問題來了,是不是所有以前釋出的app都會出現問題呢?答案是不會,只有那些targetSdkVersion 設定為2323以上的應用才會出現異常。以下以筆者開發的視訊app為例來說明:


是不是所有許可權都需要去進行特殊處理呢?不是,只有那些危險級別的許可權才需要,android開發者官網有相關描述:


所以仔細去看看自己的app,對照列表,如果有需要申請其中的一個許可權,就需要進行特殊操作。還有一個比較人性的地方就是如果同一組的任何一個許可權被授權了,其他許可權也自動被授權。例如,一旦

WRITE_EXTERNAL_STORAGE被授權了,app也有READ_EXTERNAL_STORAGE許可權了。

接著下一步當然就是要修改程式碼了,因視訊程式需要使用到外部存取空間, 因此需要申請WRITE_EXTERNAL_STORAGE許可權, 所以在執行之前我們需要進行特殊處理

inthasWriteContactsPermission =checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);

if(hasWriteContactsPermission !=PackageManager.PERMISSION_GRANTED) {

        requestPermissions(newString[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},

                CODE_FOR_WRITE_PERMISSION);

    return;

寫完這段程式碼之後,就會出現如下系統dialog, 如上圖所示

緊接著就需要去處理DENYALLOW的回調了,重寫onRequestPermissionsResult函式:

@Override

publicvoidonRequestPermissionsResult(intrequestCode,String[] permissions, int[] grantResults) {

    if(requestCode ==CODE_FOR_WRITE_PERMISSION){

        if(permissions[0].equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)

            &&grantResults[0]== PackageManager.PERMISSION_GRANTED){

            //使用者同意使用

        }else{

            //使用者不同意,自行處理即可

            finish();

        }

    }

好了,這樣就算是適配完成了。


相關推薦

Android 6.0 動態許可權申請

前言: 從Android 6.0(API 23)開始,對系統許可權做了很大的改變。在之前使用者安裝APP前,只是把APP需要使用的許可權列出來給使用者告知一下,APP安裝後都可以訪問這些許可權。從6.0開始,一些敏感許可權,需要在使用時動態申請,並且使用者可以選擇拒絕授權訪

一行程式碼搞定Android 6.0動態許可權申請

1、前言 從Android 6.0(API 23)開始,對系統許可權做了很大的改變。在之前使用者安裝APP前,只是把APP需要使用的許可權列出來給使用者告知一下,APP安裝後都可以訪問這些許可權。從6.0開始,一些敏感許可權,需要在使用時動態申請,並且使用者可

Android 6.0動態許可權申請

1.Android6.0動態許可權的由來 一直以來,Android的許可權系統都是最大的安全問題之一,因為在進行安裝的時候,所有的許可權都會統一進行請求,你必須允許這些許可權請求才能進行安裝.應用安裝後,就可以在使用者毫不知情的情況下,訪問這些許可權.所以有很

Android 6.0 動態許可權申請簡單簡潔優雅的處理方式

Android M 或以上的裝置,在使用涉及隱私的安全許可權時,需要動態申請,雖然不難,但寫下來程式碼工作量也不少,而且幾乎每個應用都需要用到。所以一直在探索一個要足夠簡單簡潔優雅的處理方式,強迫症的精神指導我要拒絕一切繁瑣。至於完不完美那就仁者見仁了。 一、思路: 如果在

Android 6.0 動態許可權申請注意事項

<strong><span style="font-size:32px;color:#000099;">許可權區分</span></strong> Android 6.0 為了保護使用者隱私,將一些許可權的申請放在了應用執行的

Android 6.0 app許可權申請

作者:Henry 在android 6.0版本之後,系統不會在軟體安裝的時候就賦予該app所有其申請的許可權,對於一些危險級別的許可權,app需要在執行時一個一個詢問使用者授予許可權。那麼問題來了,是不是所有以前釋出的app都會出現問題呢?答案是不會,只有那些target

android 6.0 以上 動態申請多個許可權

不囉嗦 直接上程式碼 第一步 首先在onCreate下判斷SDK版本  if (Build.VERSION.SDK_INT >= 23) {               //如果targetSDKVersion >= 23,那麼必須要申請到所需要的許可權,

Android 5.0 動態許可權申請的基本流程和套路

注:本文主要是梳理一下Android動態許可權申請的一個基本套路。 需要有一定的Android編碼經驗,對於完全的新手來說,可能還有些技術細節沒有做具體解釋。 Android動態許可權申請有效保證了使用者的的安全,但是對開發者來說需要寫跟多的程式碼邏輯來跟使用者確認許可權。 先不考慮

6.0動態許可權申請,最簡單卻容易被小白忽視的相容方式

       6.0剛出顯示,動態申請各種頭疼,之後出現各種封裝框架,但是本人一直使用的系統自帶的那一套,然後就是遇見各種品牌手機不同的申請過程。早期突然靈光一動想到的一種偷懶且相容性很高的方式,O(∩_∩)O哈哈~可能你只是沒想到,貼下程式碼,你想笑。     以申請短息

Android 6.0動態許可權介紹與處理

一、Android 6.0許可權介紹 從 Android 6.0(API 級別 23)開始,使用者開始在應用執行時向其授予許可權,而不是在應用安裝時授予。 Android 6.0系統6.0以前,所有的許可權,訪問網路的許可權,讀取SD卡的許可權,訪問通訊錄,撥

Android 6.0: 動態許可權管理的解決方案

歡迎Follow我的GitHub, 關注我的CSDN. Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了使用者體驗, 同時也為程式設計師帶來新的負擔. 動態許可權管理就是這樣, 一方面讓使用者更加容易的控制自己的隱

Android 6.0動態許可權呼叫相簿相機

1.建立頁面簡單佈局demo.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res

Android 6.0動態許可權及跳轉GPS設定介面

public class CheckPermissionsActivity extends Activity implements ActivityCompat.OnRequestPermissionsResultCallback { /** * 需要進行檢測的許可權陣列 */ prote

Android 6.0+ 動態許可權 一種清爽的封裝過程(以及多個許可權的處理)

Android 6.0 之前我們申請許可權直接在配置檔案中配置一下即可,但是6.0之後,谷歌官方將許可權分為普通許可權和危險許可權。對於危險許可權來說,我們就需要進行動態設定了。本文主要講解為什麼要進行Android 6.0 動態許可權的設定、動態許可權的使用、

Android 6.0動態許可權及小米(MIUI)許可權的特殊處理

前言 常規操作許可權的頁面及流程 許可權說明 許可權授取流程 小米許可權特殊處理 各個android作

Android 6.0動態許可權框架EasyPermissions的使用

在6.0下新的許可權機制分為兩類,Normal Permissions,這類許可權是不需要使用者授權,不會觸及使用者的隱私,只需要在manefest裡面申請即可;還有一類是Dangerous Permissions,這類許可權需要動態的去申請。 Normal Permission如下: [java] v

小米,紅米手機android 6.0以下 許可權管理

紅米小米等手機在android6.0以下加了許可權管理,用android自身帶的checkpermisson方法時,永遠返回true,因此在獲取許可權為true時,加入判斷錄音許可權: Log.e("MainActivity", "onPermissionGranted");

Android 6.0 動態許可權實戰(二

關於上一章節提到的 23.06ADT和6.0的SDK 資源,現在馬上貼出來如果連結不存在,或者資源有問題,請在本博留言,勿發私信,謝謝!在本篇開篇前先大致瞭解一下 6.0 動態許可權的大致過程,廢話不多說,linux開啟原始碼,開始探究1.首先,比如我們需要手動授權的時候,怎

android 6.0動態許可權在進入MainActivity之前的統一處理

android 6.0動態許可權的處理 1 首先了解下什麼是6.0動態許可權: Android6.0的新特性之一就是許可權的動態管理,也就是說使用者可以自己去設定隱私許可權(比如定位,訪問通訊錄,讀取手機卡的狀態等) 危險許可權列表: 2.Andro

Android 6.0以上許可權處理

最近在開發過程中,遇到適配Android 6.0及以上版本的許可權處理問題。 一、問題背景 通常,在6.0以上版本,僅僅只在AndroidManifest.xml檔案中配置許可權,有很多情況下,許可權並沒有獲得到,而是丟擲了異常: java.lang.Se