【舉例】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。具體見:
googlesamples上有乙個專案easypermissions,就是來處理執行時許可權的。其中位置在 package scut.luluteam.gutils.utils; 中
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...