Sou*_*der 5 android android-manifest android-permissions
我要添加的功能是,在首次打开应用程序后,为用户提供批准的权限列表。
我从这篇文章中阅读了有关如何执行此操作的信息。
但是我仍然对此有一些疑问,以使我的应用程序的此功能真正动态:
如何从清单文件中读取所需权限列表?(这避免了对每个所需权限的显式硬编码验证)
由于我仅在权限属于危险种类时才需要明确询问用户,因此如何以编程方式将这些权限分类为NORMAL和DANGEROUS?(根据文档,普通权限由操作系统自动授予,而无需请求用户)
要执行与该权限相关的某些操作时,您需要检查每次是否向您的应用授予天气权限。
因为用户可以随时从设置中禁用该权限。
日历
READ_CALENDAR
WRITE_CALENDAR
Run Code Online (Sandbox Code Playgroud)
通话记录
READ_CALL_LOG
WRITE_CALL_LOG
PROCESS_OUTGOING_CALLS
Run Code Online (Sandbox Code Playgroud)
相机
CAMERA
Run Code Online (Sandbox Code Playgroud)
联系方式
READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
Run Code Online (Sandbox Code Playgroud)
地点
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
Run Code Online (Sandbox Code Playgroud)
麦克风
RECORD_AUDIO
Run Code Online (Sandbox Code Playgroud)
电话
READ_PHONE_STATE
READ_PHONE_NUMBERS
CALL_PHONE
ANSWER_PHONE_CALLS
ADD_VOICEMAIL
USE_SIP
Run Code Online (Sandbox Code Playgroud)
感应器
BODY_SENSORS
Run Code Online (Sandbox Code Playgroud)
短信
SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
Run Code Online (Sandbox Code Playgroud)
存储
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)
源危险权限
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
FOREGROUND_SERVICE
GET_PACKAGE_SIZE
INSTALL_SHORTCUT
INTERNET
KILL_BACKGROUND_PROCESSES
MANAGE_OWN_CALLS
MODIFY_AUDIO_SETTINGS
NFC
READ_SYNC_SETTINGS
READ_SYNC_STATS
RECEIVE_BOOT_COMPLETED
REORDER_TASKS
REQUEST_COMPANION_RUN_IN_BACKGROUND
REQUEST_COMPANION_USE_DATA_IN_BACKGROUND
REQUEST_DELETE_PACKAGES
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
SET_ALARM
SET_WALLPAPER
SET_WALLPAPER_HINTS
TRANSMIT_IR
USE_FINGERPRINT
VIBRATE
WAKE_LOCK
WRITE_SYNC_SETTINGS
Run Code Online (Sandbox Code Playgroud)
源普通权限
public void readPermission()
{
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS);
if (info.requestedPermissions != null) {
for (String p : info.requestedPermissions) {
Log.d(TAG, "Permission : " + p);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15307 次 |
| 最近记录: |