Android6 0哪些許可權要動態申請?

2021-08-07 10:35:36 字數 3474 閱讀 6045

**:

谷歌官方將許可權分為了兩類,乙個是正常許可權(normal permissions),這類許可權不涉及使用者隱私,是不需要使用者進行授權的,比如訪問網路,手機震動等。還有一類是危險許可權(dangerous permissions),一般是涉及到使用者隱私的,需要使用者進行授權,比如操作sd卡的寫入,相機,錄音等。

access_location_extra_commands

access_network_state

access_notification_policy

access_wifi_state

bluetooth

bluetooth_admin

broadcast_sticky

change_network_state

change_wifi_multicast_state

change_wifi_state

disable_keyguard

expand_status_bar

get_package_size

install_shortcut

internet

kill_background_processes

modify_audio_settings

nfcread_sync_settings

read_sync_stats

receive_boot_completed

reorder_tasks

request_install_packages

set_alarm

set_time_zone

set_wall*****

set_wall*****_hints

transmit_ir

uninstall_shortcut

use_fingerprint

vibrate

wake_lock

write_sync_settings

group:android.permission-group.contacts

permission:android.permission.write_contacts

permission:android.permission.get_accounts

permission:android.permission.read_contacts

group:android.permission-group.phone

permission:android.permission.read_call_log

permission:android.permission.read_phone_state

permission:android.permission.call_phone

permission:android.permission.write_call_log

permission:android.permission.use_sip

permission:android.permission.process_outgoing_calls

permission:com.android.voicemail.permission.add_voicemail

group:android.permission-group.calendar

permission:android.permission.read_calendar

permission:android.permission.write_calendar

group:android.permission-group.camera

permission:android.permission.camera

group:android.permission-group.sensors

permission:android.permission.body_sensors

group:android.permission-group.location

permission:android.permission.access_fine_location

permission:android.permission.access_coarse_location

group:android.permission-group.storage

permission:android.permission.read_external_storage

permission:android.permission.write_external_storage

group:android.permission-group.microphone

permission:android.permission.record_audio

group:android.permission-group.sms

permission:android.permission.read_sms

permission:android.permission.receive_wap_push

permission:android.permission.receive_mms

permission:android.permission.receive_sms

permission:android.permission.send_sms

permission:android.permission.read_cell_broadcasts

看完官方文件,還好解決方案還不是太難,也不是非常麻煩,當然和以前相比還是有一點繁瑣的。廢話不多說了,解決方案如下。

private

boolean

canmakesmores

()

檢查系統版本的原因,顯而易見,如果是系統6.0及以上的,需要採用新的許可權授權方法。

舉個例子,如果你需要拍照操作,那麼你就應該在拍照操作的地方,先加上許可權申請授權。方式如下:

string perms = ;

int permsrequestcode = 200;

requestpermissions(perms, permsrequestcode);

@override

public

void

onrequestpermissionsresult

(int permsrequestcode, string permissions, int grantresults)

else

break;

}}

通過上面可以看出,只檢查系統版本了,如果授權過的許可權,還需要再次去授權麼?我們的判斷其實可以更完善一下,比如:

private boolean haspermission(string permission)

return

true;

}

Android 6 0許可權管理

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

Android6 0許可權適配

android6.0許可權適配 1.複寫activity onrequestpermissionsresult override public void onrequestpermissionsresult int requestcode,string permissions,int grantre...

Android 6 0 許可權管理

android 6.0 之後許可權需要動態的獲取,否則是無法正常使用某些功能的。主布局檔案 主要是來模擬動態的獲取許可權,因此布局檔案中無其他多餘內容,其中textview也可以省略。使用3.1 在全域性中 宣告 private static final int request code camer...