正常权限:

  • 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
  • NFC
  • READ_SYNC_SETTINGS
  • READ_SYNC_STATS
  • RECEIVE_BOOT_COMPLETED
  • REORDER_TASKS
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • REQUEST_INSTALL_PACKAGES
  • SET_ALARM
  • SET_TIME_ZONE
  • SET_WALLPAPER
  • SET_WALLPAPER_HINTS
  • TRANSMIT_IR
  • UNINSTALL_SHORTCUT
  • USE_FINGERPRINT
  • VIBRATE
  • WAKE_LOCK
  • WRITE_SYNC_SETTINGS

危险权限组和权限:

每个组申请一个权限,这个组的其他权限也一并申请了。

所有危险的 Android 系统权限都属于权限组。如果设备运行的是 Android 6.0(API 级别 23),并且应用的 targetSdkVersion 是 23 或更高版本,则当用户请求危险权限时系统会发生以下行为:

  • 如果应用请求其清单中列出的危险权限,而应用目前在权限组中没有任何权限,则系统会向用户显示一个对话框,描述应用要访问的权限组。对话框不描述该组内的具体权限。例如,如果应用请求READ_CONTACTS 权限,系统对话框只说明该应用需要访问设备的联系信息。如果用户批准,系统将向应用授予其请求的权限。
  • 如果应用请求其清单中列出的危险权限,而应用在同一权限组中已有另一项危险权限,则系统会立即授予该权限,而无需与用户进行任何交互。例如,如果某应用已经请求并且被授予了 READ_CONTACTS 权限,然后它又请求 WRITE_CONTACTS,系统将立即授予该权限。

任何权限都可属于一个权限组,包括正常权限和应用定义的权限。但权限组仅当权限危险时才影响用户体验。可以忽略正常权限的权限组。

如果设备运行的是 Android 5.1(API 级别 22)或更低版本,并且应用的 targetSdkVersion 是 22 或更低版本,则系统会在安装时要求用户授予权限。再次强调,系统只告诉用户应用需要的权限,而不告知具体权限。

具体的危险权限组和权限如下:

CALENDAR

  • READ_CALENDAR
  • WRITE_CALENDAR


CAMERA

  • CAMERA


CONTACTS

  • READ_CONTACTS
  • WRITE_CONTACTS
  • GET_ACCOUNTS


LOCATION

  • ACCESS_FINE_LOCATION
  • ACCESS_COARSE_LOCATION


MICROPHONE

  • RECORD_AUDIO


PHONE

  • READ_PHONE_STATE
  • CALL_PHONE
  • READ_CALL_LOG
  • WRITE_CALL_LOG
  • ADD_VOICEMAIL
  • USE_SIP
  • PROCESS_OUTGOING_CALLS


SENSORS

  • BODY_SENSORS


SMS

  • SEND_SMS
  • RECEIVE_SMS
  • READ_SMS
  • RECEIVE_WAP_PUSH
  • RECEIVE_MMS


STORAGE

  • READ_EXTERNAL_STORAGE
  • WRITE_EXTERNAL_STORAGE


特殊权限:

SYSTEM_ALERT_WINDOW WRITE_SETTINGS

有许多权限其行为方式与正常权限及危险权限都不同。SYSTEM_ALERT_WINDOW 和WRITE_SETTINGS 特别敏感,因此大多数应用不应该使用它们。如果某应用需要其中一种权限,必须在清单中声明该权限,并且发送请求用户授权的 intent。系统将向用户显示详细管理屏幕,以响应该 intent。

如需了解有关如何请求这些权限的详情,请参阅 SYSTEM_ALERT_WINDOW 和WRITE_SETTINGS 参考条目。



更多相关文章

  1. Android调用系统camera
  2. ADROID2.2系统多国语言定制
  3. 探索FragmentTransaction#commit()抛出IllegalStateException
  4. 解决:/system/bin/sh: ./hello: No such file or directory
  5. 处女apk纠结过的技术点
  6. Launcher研究之AndroidManifest.xml[转]
  7. ubuntu linux 解锁(unlock) root nexus s i9020t android 4.1 支
  8. Android(安卓)调用相册 拍照 实现系统控件缩放 切割图片 .
  9. Android(安卓)6.0 动态申请权限无效问题

随机推荐

  1. Android(安卓)判断系统用户无操作
  2. 用Android代码实现打开USB调试
  3. Android中String的处理
  4. Android直播开发之旅(6):详解ffmpeg命令在
  5. Android权限问题
  6. android记帐本、涂鸦、仿腾讯新闻、仿bil
  7. 如何用eclipse搭建Android的开发环境
  8. 《Android系统开发》笔记
  9. ionic3/ag4编写模仿京东商城的demo
  10. Android 中wifi的使用