欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android手動(dòng)檢查并申請(qǐng)權(quán)限方法

 更新時(shí)間:2018年07月31日 10:52:28   作者:Suzi丶  
今天小編就為大家分享一篇Android手動(dòng)檢查并申請(qǐng)權(quán)限方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

Android權(quán)限一般是在AndroidManifest.xml中聲明,在安裝或首次使用的時(shí)候系統(tǒng)會(huì)自動(dòng)提示用戶(hù)是否提供權(quán)限

Android官方文檔:

Then, when the application is installed on the device, the installer determines whether or not to grant the requested permission by checking the authorities that signed the application's certificates and, in some cases, asking the user. If the permission is granted, the application is able to use the protected features. If not, its attempts to access those features will simply fail without any notification to the user.

但有時(shí)候因?yàn)槭謾C(jī)設(shè)備等原因,并沒(méi)有在一開(kāi)始就彈出提示框讓用戶(hù)確認(rèn)是否提供權(quán)限,對(duì)于有些權(quán)限,不確認(rèn)的話(huà)就不提供權(quán)限,因此,有些功能就無(wú)法實(shí)現(xiàn)。

這時(shí)候需要我們手動(dòng)檢查是否已經(jīng)擁有權(quán)限,沒(méi)有的話(huà)就調(diào)用代碼提示用戶(hù)提供權(quán)限。

如何手動(dòng)檢查并申請(qǐng)權(quán)限

如:在寫(xiě)入之前檢查是否有WRITE_EXTERNAL_STORAGE權(quán)限,沒(méi)有則申請(qǐng)權(quán)限

代碼:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
  != PackageManager.PERMISSION_GRANTED) {
 //申請(qǐng)WRITE_EXTERNAL_STORAGE權(quán)限
 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
   WRITE_EXTERNAL_STORAGE_REQUEST_CODE);
}

請(qǐng)求權(quán)限后,系統(tǒng)會(huì)彈出請(qǐng)求權(quán)限的Dialog,允許即可

用戶(hù)選擇允許或拒絕后,會(huì)回調(diào)onRequestPermissionsResult方法, 該方法類(lèi)似于onActivityResult

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
 doNext(requestCode,grantResults);
}

PS:

在Android6.0,有些權(quán)限只需要在AndroidManifest.xml文件中聲明即可,但有些除了聲明以外,還需要在運(yùn)行時(shí)判斷,即用戶(hù)確認(rèn),需要確認(rèn)的權(quán)限如下:

身體傳感器 
日歷 
攝像頭 
通訊錄 
地理位置 
麥克風(fēng) 
電話(huà) 
短信 
存儲(chǔ)空間

Android6.0系統(tǒng)默認(rèn)為targetSdkVersion小于23的應(yīng)用默認(rèn)授予了所申請(qǐng)的所有權(quán)限,

所以如果你以前的APP設(shè)置的targetSdkVersion低于23,在運(yùn)行時(shí)也不會(huì)崩潰,

但這也只是一個(gè)臨時(shí)的救急策略,用戶(hù)還是可以在設(shè)置中取消授予的權(quán)限。

以下權(quán)限只需要在AndroidManifest.xml中聲明即可使用:

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 
android.permission.ACCESS_NETWORK_STATE 
android.permission.ACCESS_NOTIFICATION_POLICY 
android.permission.ACCESS_WIFI_STATE 
android.permission.ACCESS_WIMAX_STATE 
android.permission.BLUETOOTH 
android.permission.BLUETOOTH_ADMIN 
android.permission.BROADCAST_STICKY 
android.permission.CHANGE_NETWORK_STATE 
android.permission.CHANGE_WIFI_MULTICAST_STATE 
android.permission.CHANGE_WIFI_STATE 
android.permission.CHANGE_WIMAX_STATE 
android.permission.DISABLE_KEYGUARD 
android.permission.EXPAND_STATUS_BAR 
android.permission.FLASHLIGHT 
android.permission.GET_ACCOUNTS 
android.permission.GET_PACKAGE_SIZE 
android.permission.INTERNET 
android.permission.KILL_BACKGROUND_PROCESSES 
android.permission.MODIFY_AUDIO_SETTINGS 
android.permission.NFC 
android.permission.READ_SYNC_SETTINGS 
android.permission.READ_SYNC_STATS 
android.permission.RECEIVE_BOOT_COMPLETED 
android.permission.REORDER_TASKS 
android.permission.REQUEST_INSTALL_PACKAGES 
android.permission.SET_TIME_ZONE 
android.permission.SET_WALLPAPER 
android.permission.SET_WALLPAPER_HINTS 
android.permission.SUBSCRIBED_FEEDS_READ 
android.permission.TRANSMIT_IR 
android.permission.USE_FINGERPRINT 
android.permission.VIBRATE 
android.permission.WAKE_LOCK 
android.permission.WRITE_SYNC_SETTINGS 
com.android.alarm.permission.SET_ALARM 
com.android.launcher.permission.INSTALL_SHORTCUT 
com.android.launcher.permission.UNINSTALL_SHORTCUT

以上這篇Android手動(dòng)檢查并申請(qǐng)權(quán)限方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論