Android 6 0新特性之 許可權管理

2021-07-09 11:06:07 字數 1752 閱讀 8904

android 6.0中增加了 執行時permissions,就是說可以在執行時判斷有無許可權和獲取許可權,讓使用者同意即可。

在之前的版本都是安裝的時候就會要使用者同意各種許可權,現在是在用的時候,回去問使用者同意。

下面介紹一下我們應用在適配6.0的時候,需要做哪些事情吧,

許可權新增

這個和之前的做法沒有區別:在androidmanifest中新增

在你宣告許可權之後,系統的行為取決於你許可權的敏感程度,如果這個許可權沒有影響到使用者隱私,系統會自動同意你的許可權,如果許可權可能影響使用者隱私,那系統就會去徵詢使用者的同意了,

檢查許可權

如果你需要乙個危險的許可權,就必須每次都檢查你是否已經有許可權了,所以如果有許可權了,我們直接使用就可以了,如果沒有那麼就申請就好了

int permissioncheck = contextcompat.checkselfpermission(thisactivity,

manifest.permission.write_calendar);

返回值就是是否已經有許可權了,如果返回值是

packagemanager.permission_granted,就證明有許可權了,如果返回

packagemanager.

permission_denied,那就證明還沒有許可權呢,

這是我們就要自己去申請

申請許可權

activitycompat.requestpermissions(thisactivity,

new string,

my_permissions_request_read_contacts);

呼叫這個方法之後,會彈出乙個標準的dialog,這個是不能被我們自定義的啊,長啥死樣就看各個廠商了。

但是呢,我們可以在彈框之前,單獨彈乙個視窗,來告訴為什麼要申請許可權,然後再去彈這個系統框,這樣使用者就會更加了解你為什麼需要這個許可權了。

所以我們的完整**如下:

// here, thisactivity is the current activity

if (contextcompat.checkselfpermission(thisactivity,

manifest.permission.read_contacts)

!= packagemanager.permission_granted) else ,

my_permissions_request_read_contacts);

// my_permissions_request_read_contacts is an

// result of the request.

}}

上面的大多數方法,我們都已經講過了,根據注釋,也理解了每一段都幹了什麼,

唯一需要額外說一下的是

activitycompat.shouldshowrequestpermissionrationale()

上面是google說的幾點,下面我再解釋**話,就是說:

我們第一次呼叫這裡,肯定是返回false的,就會彈出來系統彈框,問你同不同意啊,

如果你同意了,以後就沒這裡什麼事了

如果要是不同意呢,以後就會返回true,

那咱們就得彈個框,告訴使用者問什麼要許可權,最好再有個同意按鈕

Android 6 0新特性之Doze模式

doze模式可以極大幅度延長電池的使用壽命。我將從程式設計時的一些注意事項入手講解。1.什麼是doze模式 如果該裝置未插接電源,處於靜止狀態 android7.0中刪除這一條件 且螢幕關閉了一段時間之後就會進入到doze模式。在doze模式下,系統會對cpu,網路,alarm等活動進行限制,從而延...

android6 0新特性 電源節能

從android 6.0 api級別23 android介紹兩個節電功能,通過管理裝置沒有連線電源時應用的行為 休眠時減少電池消耗通過延遲背景cpu和網路活動時應用裝置是閒置很長一段時間。應用備用延緩背景網路活動應用程式的使用者最近沒有互動。休眠和應用程式備份管理行為的應用程式執行在android ...

Android 6 0許可權管理

android 6.0在我們原有的androidmanifest.xml宣告許可權的基礎上,又新增了執行時許可權動態檢測,以下許可權都需要在執行時判斷 身體感測器 日曆攝像頭 通訊錄地理位置 麥克風 簡訊儲存空間 if contextcompat.checkselfpermission this,m...