舉例 Android動態申請許可權

2021-07-28 21:14:39 字數 2507 閱讀 9414

【舉例】android自定義dialog——做出「確定/取消」的選擇

還是一貫的風格,直接上**。

android:name

="android.permission.camera"

/>

android:name

="android.permission.change_network_state"

/>

android:name

="android.permission.modify_audio_settings"

/>

android:name

="android.permission.record_audio"

/>

android:name

="android.permission.internet"

/>

android:name

="android.permission.write_external_storage"

/>

android:name

="android.permission.access_network_state"

/>

在這些許可權中,camera 、record_audio 和 write_external_storage 需要動態申請。

//乙個整形常量

public

static

final

int my_permissions_request =

3000

;//定義乙個list,用於儲存需要申請的許可權

arraylist

permissionlist =

newarraylist

();permissionlist.

add(manifest.permission.camera)

;permissionlist.

add(manifest.permission.record_audio)

;permissionlist.

add(manifest.permission.write_external_storage)

;//呼叫封裝好的申請許可權的方法

private

void

checkandrequestpermissions

(arraylist

permissionlist)

}/**

*補充說明:activitycompat.shouldshowrequestpermissionrationale(this, manifest.permission.record_audio);

*對於原生android,如果使用者選擇了「不再提示」,那麼shouldshowrequestpermissionrationale就會為true。

*此時,使用者可以彈出乙個對話方塊,向使用者解釋為什麼需要這項許可權。

*對於一些深度定製的系統,如果使用者選擇了「不再提示」,那麼shouldshowrequestpermissionrationale永遠為false**/

if(list.

size()

==0) string[

] permissions = list.

toarray

(new

string[0

]);//正式請求許可權

activitycompat.

requestpermissions

(this

;}

//不管許可權申請成功與否,都會呼叫該方法

@override

public

void

onrequestpermissionsresult

(int requestcode,

@nonnull string[

] permissions,

@nonnull

int[

] grantresults)

else}if

(re_request)

else

if(button == yesornodialog.clickedbutton.negative)}}

);permissiondialog.

show()

;}break;}

default

:break;}

}

為了方便以後呼叫,簡單封裝了乙個permissionutil。具體見:

其中位置在 package scut.luluteam.gutils.utils; 中

googlesamples上有乙個專案easypermissions,就是來處理執行時許可權的。

Android 動態許可權申請

1.android6.0以下系統,只要在mainfest中註冊了,則自動授權,不會彈出許可權詢問的對話方塊。2.android6.0系統,同一組許可權中如果有乙個許可權動態授權,則改組的所有的許可權自動授權 需要先在mainfest中註冊 3.android 8.0系統。在 android 8.0 ...

android 動態申請許可權

private string permissions newstring 檢查是否有相應的許可權 checkdevicepermission permissions,newpermissionlistener override public void permissionfail private f...

Android 動態申請儲存許可權

listfiles 出錯,檢視後發現返回值為null,查閱資料後發現讀寫儲存許可權其實未授予,如下解決問題。1.儲存讀寫許可權 2.執行時許可權 private static final int request external storage 1 private static string per...