1. 程式人生 > >關於Android 6.0+ Dangerous Permissions (執行時許可權,敏感許可權) 《實用篇》

關於Android 6.0+ Dangerous Permissions (執行時許可權,敏感許可權) 《實用篇》

1. 什麼是許可權?
許可權是一種安全機制。Android許可權主要用於限制應用程式內部,某些具有限制性的功能使用,以及應用程式之間的元件訪問。
(通俗來講,你想拍照就需要相機的許可權。沒有許可權,你就無法使用相機功能。)


2.什麼又是敏感許可權?
Android6.0之後,首先關注的就是許可權機制的變化,Google將許可權分為兩類,一類是Normal Permissions,這類許可權一般不涉及使用者隱私,是不需要使用者進行授權的。另一類是Dangerous Permission ,也就是所說的敏感許可權,一般是涉及到使用者隱私的,需要使用者進行授權。


我先來看一下 都有什麼許可權;
PS :另外需要什麼許可權直接複製貼上即可。
Normal Permissions  

 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
    <uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    <uses-permission android:name="android.permission.NFC"/>
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
    <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.REORDER_TASKS"/>
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.SET_TIME_ZONE"/>
    <uses-permission android:name="android.permission.SET_WALLPAPER"/>
    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
    <uses-permission android:name="android.permission.TRANSMIT_IR"/>
    <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>


Dangerous Permissions
 以下 是 Android 6.0+ (SDK23+)的敏感許可權(涉及使用者隱私的)和 許可權組 
 許可權組  當同一組內的一個許可權被授權 ,組內的其他許可權同時授權
 例如 授權 READ_CONTACTS 的同時 他組內的.WRITE_CONTACTS 和GET_ACCOUNTS 也已經被授權

 <!-- CALENDAR 日曆組 -->
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <!-- CAMERA 相機拍照組 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <!-- CONTACTS 聯絡人組 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <!-- LOCATION 定位組 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- MICROPHONE 麥克風組 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!-- PHONE 組 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="android.permission.USE_SIP" />
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <!-- SENSORS 感測器組 -->
    <uses-permission android:name="android.permission.BODY_SENSORS" />
    <!-- SMS 組 -->
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <!-- STORAGE 儲存組 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


無論是 Normal Permissions 類 還是 Dangerous Permissions類,任何許可權都需要在 AndroidManifest.xml 裡註冊。
當你的程式安裝到安卓版本6.0以上的手機時,  Normal Permissions 的許可權就已經永久授權。
而那些 Dangerous Permissions 根據手機的不同,有的手機實際上是並沒有授權的。


執行時許可權 (Runtime Permissions)

執行時許可權很好理解,就是 程式執行中,動態申請許可權。 
拿相機拍照舉例。 當點選一個按鈕需要呼叫系統相機的時候, 會彈出一個對話方塊。

相關推薦

關於Android 6.0+ Dangerous Permissions (執行許可權敏感許可權) 《實用

1. 什麼是許可權? 許可權是一種安全機制。Android許可權主要用於限制應用程式內部,某些具有限制性的功能使用,以及應用程式之間的元件訪問。 (通俗來講,你想拍照就需要相機的許可權。沒有許可權,你就無法使用相機功能。)2.什麼又是敏感許可權? Android6.0之後,首先關注的就是許可權機制的變化,Go

6.0以上手機執行許可權第三方PermissionsDispatcher的使用

PermissionsDispatcher通過註解的方式,動態生成類處理執行時許可權。配合外掛使用,可自動生成程式碼。 使用方法如下: 1>將下面這段程式碼新增到project的build.gradle檔案中。 buildscript { dependen

聊一聊 Android 6.0 的運行權限

con alert 打電話 target 告訴 分享 ttf alt toast 聊一聊 Android 6.0 的運行時權限 權限一刀切 棉花糖運行時權限 權限的分組 正常權限 正常權限列表 特殊權限 請求SYSTEM_ALERT_WINDOW 請求WRITE

Android 6.0獲取IMEI號是出錯動態獲取許可權

    之前更新了一個版本,獲取使用者的IMEI裝置號,本地手機測試沒問題,就放到伺服器上,結果有很多使用者反應,應用打不開。也不是全部使用者,只有少部分Android 6.0系統的使用者和一些root過的使用者,由於那不到使用者手機,只能從錯誤日誌中檢視。 出錯日誌:

Android 6.0執行許可權勾選不再詢問後該如何處理?

Android 6.0執行時許可權勾選不再詢問後該如何處理? 當第一次請求許可權申請被拒絕後再進行第二次申請時,對話方塊中會多出一個 不再詢問 的複選框。如果勾選了該複選框並且拒絕請求,那麼以後將無法再申請該許可權。也就是說在呼叫 requestPermissions() 後,onRequest

Android 6 0 執行許可權處理

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android 6 0 執行許可權處理完全解析

                     一、概述ok,本篇文章目的之一就是對執行時許可權處理的一個介紹,以及對目前許可權相關的庫的一些瞭解。當然非常推薦閱讀官網許可權相關文章:本文也是在上述文章基礎上理解、實驗以及封裝。二、執行時許可權的變化及特點對於6.0以下的許可權及在安裝的時候,根據許可權宣告產生一個

以呼叫系統相機拍照為例瞭解Android 6.0執行許可權

首先扯點別的,聽說這個週末是好天氣,想約她一起去公園賞賞梅花,只有我自己估計她也不一定去啊,哈哈。 在android6.0及以上系統,Android在安裝一個應用的時候不再需要列出一大堆許可權,讓使用者點選同意以後才可以安裝。Instead, 當應用在執行的時

談談Android 6.0執行許可權理解

前言  谷歌在2015年8月份時候,釋出了Android 6.0版本,代號叫做“棉花糖”(Marshmallow ),其中的很大的一部分變化,是在使用者許可權授權上,或許是感覺之前預設授權的不合理,現在6.0出來,使得使用者許可權授權變得合理。這可能也是參考IOS系統的,只有在使用者需要使用許可權的時候,才

Android 6.0執行許可權申請和一些坑

1.概述 大家知道在Android6.0(Api23)之前,使用者許可權的申請都是在AndroidManifest.xml 宣告的,而在6.0之後,對某些涉及到使用者隱私的許可權可在執行時根據使用者的需要動態授予。如果你的應用設定targetSdkVersio

Android 6.0 執行許可權處理

執行時許可權介紹 Android 6.0在我們原有的AndroidManifest.xml宣告許可權的基礎上, 又新增了執行時許可權動態檢測,以下許可權都需要在執行時判斷: 執行時許可權處理 Android6.0系統預設為targetSdkVersion小於23的應用預設授予了所申請的所有許可權,

Android 6.0 執行許可權管理最佳實踐

這是一篇遲來的部落格,Android M已經發布一年多了(6.0的變化),在Android M中許可權系統被重新設計,發生了顛覆性的變化,很多人把握不好這個變化,一是對這個許可權策略和套路還沒有摸透,二是沒有一個很好的實踐來支撐,在我的技術開發群裡很多人問我

Android 6.0執行申請許可權解釋與例項

Android 6.0在執行時申請許可權 從android 6.0(API23)開始,當app執行時使用者授予使用者的許可權,而不是在安裝程式的時候。 系統許可權分為2種,分別為normal和dangerous. Normal permission:對於

android 6.0執行許可權應用之相簿圖片選取

public class MainActivity extends AppCompatActivity { public static final int REQUEST_CODE=200; public static final int REQUEST_C

Android 6.0 執行許可權處理完全解析

一、概述 ok,本篇文章目的之一就是對執行時許可權處理的一個介紹,以及對目前許可權相關的庫的一些瞭解。 當然非常推薦閱讀官網許可權相關文章: 本文也是在上述文章基礎上理解、實驗以及封裝。 二、執行時許可權的變化及特點 對於6.0以下

Android 6.0 執行許可權檢查分析

Android版本升級到6.0之後,為了一改往日安全受人詬病的形象,將許可權授權的安裝時授予的基礎上,對於一部分危險的許可權採用動態控制授權的方式。類似國內手機安全助手許可權控制的功能。一、許可權控制組: 以上的9組許可權在本次修改的範圍之內,可能有人要問了,明明有一些許可

Android 6.0執行許可權第三方庫的使用-----RxPermissions

執行時許可權的講解在前一篇部落格已經算是說的比較清楚了,這裡就不說了,如果對6.0這個新特性不是很瞭解的朋友建議先看看(地址:http://blog.csdn.net/qq_33923079/article/details/53428756),那麼本篇就直接說怎

Android 6.0 執行許可權

什麼時候需要考慮執行時許可權 執行時許可權是Android6.0推出的安全機制,當你的app執行在 Android 6.0 及以上裝置上,使用危險許可權(下面介紹)的時候。 既targetSdkVer

Android 6.0執行許可權 批量申請

Android 6.0,代號棉花糖,自發布伊始,其主要的特徵執行時許可權就很受關注。因為這一特徵不僅改善了使用者對於應用的使用體驗,還使得應用開發者在實踐開發中需要做出改變。 沒有深入瞭解執行時許可權的開發者通常會有很多疑問,比如什麼是執行時許可權,哪些是執行時

android 6.0 以後在 Fragment 中申請執行許可權無法回撥 onRequestPermissionsResult

一般情況下我們在activity中申請許可權,然後在onRequestPermissionsResult中處理回撥,但是在fragment中申請許可權時,在onRequestPermissionsResult中無法收到回撥方法。 下面提供兩種解決辦法: 第一