赞
踩
官网权限教程:https://developer.android.com/guide/topics/permissions/overview
所有权限可查看:https://developer.android.com/reference/android/Manifest.permission
权限示例Demo:https://github.com/android/permissions-samples、https://developer.android.com/codelabs/android-privacy-codelab#0 此Demo是通过申请摄像头权限,然后打开一个摄像头预览界面。这个关于摄像头的代码也非常值得学习。
ACCESS_BACKGROUND_LOCATION
允许应用程序在后台访问位置信息。如果您请求此权限,则还必须请求ACCESS_COARSE_LOCATION
或 ACCESS_FINE_LOCATION
。单独请求此权限不会为您提供位置访问权限。ACCESS_COARSE_LOCATION
允许应用访问大概位置。或者,您可能想要ACCESS_FINE_LOCATION
。ACCESS_FINE_LOCATION
允许应用访问精确位置。或者,您可能想要ACCESS_COARSE_LOCATION
。ACCESS_LOCATION_EXTRA_COMMANDS
允许应用程序访问额外的位置提供程序命令。ACCESS_MEDIA_LOCATION
允许应用程序访问保存在用户共享集合中的任何地理位置。ACCESS_NETWORK_STATE
允许应用程序访问有关网络的信息。ACCESS_WIFI_STATE
允许应用程序访问有关 Wi-Fi 网络的信息。ANSWER_PHONE_CALLS
允许该应用接听来电。BLUETOOTH
允许应用程序连接到配对的蓝牙设备(蓝牙开、关、扫描、配对所需要的权限)。在API 级别 1 中添加。BLUETOOTH_ADMIN
允许应用程序发现和配对蓝牙设备。在API 级别 1 中添加。BLUETOOTH_SCAN
需要能够发现和配对附近的蓝牙设备。在API 级别 31 中添加。BLUETOOTH_CONNECT
需要能够连接到配对的蓝牙设备。在API 级别 31 中添加。BLUETOOTH_ADVERTISE
需要能够向附近的蓝牙设备做广告。在API 级别 31 中添加。BLUETOOTH_PRIVILEGED
允许应用程序在没有用户交互的情况下配对蓝牙设备(配对蓝牙时避免弹出配对对话框所需要的权限),并允许或禁止访问电话簿或消息访问。不供第三方应用程序使用。BROADCAST_STICKY
允许应用程序广播粘性意图。这些广播的数据在完成后由系统保留,以便客户端可以快速检索该数据而无需等待下一次广播。CALL_PHONE
允许应用程序发起电话呼叫,而无需通过 Dialer 用户界面让用户确认呼叫。CAMERA
需要能够访问相机设备。CHANGE_NETWORK_STATE
允许应用程序更改网络连接状态。CHANGE_WIFI_STATE
允许应用程序更改 Wi-Fi 连接状态。CLEAR_APP_CACHE
允许应用程序清除设备上所有已安装应用程序的缓存。保护级别:签名|特权DISABLE_KEYGUARD
允许应用程序在不安全时禁用 Keyguard(手机的锁屏模块,译为键盘守卫, 用于保护手机, 包含解锁(指纹、图案、PIN等)、锁屏通知显示、快速启动相机、快速拨号、显示日期/时间等)。DUMP
允许应用程序从系统服务中检索状态转储信息。不供第三方应用程序使用。EXPAND_STATUS_BAR
允许应用程序展开或折叠状态栏。FOREGROUND_SERVICE
允许常规应用程序使用Service.startForeground
。如果应用面向 Android 9(API 级别 28)或更高版本并使用前台服务,则其必须请求 FOREGROUND_SERVICE 权限。这是一种普通权限FOREGROUND_SERVICE_CAMERA
允许常规应用程序使用“camera
”类型调用Service.startForeground
。FOREGROUND_SERVICE_CONNECTED_DEVICE
允许常规应用程序使用“connectedDevice
”类型调用Service.startForeground
。FOREGROUND_SERVICE_DATA_SYNC
允许常规应用程序使用“dataSync
”类型调用Service.startForeground
。FOREGROUND_SERVICE_FILE_MANAGEMENT
允许常规应用程序使用“fileManagement
”类型调用Service.startForeground
。FOREGROUND_SERVICE_HEALTH
允许常规应用程序使用“health
”类型调用Service.startForeground
。FOREGROUND_SERVICE_LOCATION
允许常规应用程序使用“location
”类型调用Service.startForeground
。FOREGROUND_SERVICE_MEDIA_PLAYBACK
允许常规应用程序使用“mediaPlayback
”类型调用Service.startForeground
。FOREGROUND_SERVICE_MEDIA_PROJECTION
允许常规应用程序使用“mediaProjection
”类型调用Service.startForeground
。FOREGROUND_SERVICE_MICROPHONE
允许常规应用程序使用“microphone
”类型调用Service.startForeground
。FOREGROUND_SERVICE_PHONE_CALL
允许常规应用程序使用“phoneCall
”类型调用Service.startForeground
。FOREGROUND_SERVICE_REMOTE_MESSAGING
允许常规应用程序使用“remoteMessaging
”类型调用Service.startForeground
。GET_ACCOUNTS
允许访问帐户服务中的帐户列表。GET_PACKAGE_SIZE
允许应用程序找出任何包使用的空间。GET_TASKS
此常量在 API 级别 21 中已弃用。不再强制执行。INSTALL_SHORTCUT
允许应用程序在启动器中安装快捷方式。在 Android O(API 级别 26)及更高版本中,INSTALL_SHORTCUT广播不再对您的应用产生任何影响,因为它是私有的隐式广播。相反,您应该使用 类requestPinShortcut() 中的方法创建一个应用程序快捷方式ShortcutManager。INSTANT_APP_FOREGROUND_SERVICE
允许免安装应用创建前台服务。保护等级:签名|开发|即时|appINTERNET
允许应用程序打开网络套接字。KILL_BACKGROUND_PROCESSES
允许应用程序调用 ActivityManager.killBackgroundProcesses(String)
。从 Android
版本Build.VERSION_CODES.UPSIDE_DOWN_CAKE
开始,ActivityManager.killBackgroundProcesses(String)
对第三方应用程序不再可用。为了向后兼容,调用此API时如果是杀死自己则可以。如果调用者有KILL_ALL_BACKGROUND_PROCESSES
系统权限,则其他进程也会被杀死。MANAGE_EXTERNAL_STORAGE
允许应用程序广泛访问范围存储中的外部存储。旨在供少数需要代表用户管理文件的应用程序使用。MANAGE_MEDIA
允许应用程序在未经用户确认的情况下修改和删除此设备或任何连接的存储设备上的媒体文件。MODIFY_AUDIO_SETTINGS
允许应用程序修改全局音频设置。比如:设置扬声器的开或关。MODIFY_PHONE_STATE
允许修改电话状态 - 开机、mmi、网络首选项等。不包括拨打电话。不供第三方应用程序使用。NFC
允许应用程序通过 NFC 执行 I/O 操作。PACKAGE_USAGE_STATS
允许应用程序收集组件使用统计信息。声明权限意味着使用 API 的意图,并且设备的用户可以通过“设置”应用程序授予权限。POST_NOTIFICATIONS
允许应用发布通知。防护等级:危险PROCESS_OUTGOING_CALLS
允许应用程序在拨出呼叫期间查看正在拨打的号码,并可选择将呼叫重定向到不同的号码或完全中止呼叫。API 29 中已弃用。QUERY_ALL_PACKAGES
允许查询设备上的任何普通应用程序,无论清单声明如何。在API 级别 30 中添加。查询已安装的应用时需要此权限,在Android 11 或更高版本的设备上以 Android API 级别 30 或更高版本为目标时,该QUERY_ALL_PACKAGES权限才会生效。使用此权限后,无需在清单文件中使用queries元素来声明包名可见性。READ_CALENDAR
允许应用程序读取用户的日历数据。READ_CALL_LOG
允许应用程序读取用户的通话记录。注意:如果您的应用程序使用 READ_CONTACTS
权限并且你的minSdkVersion
和targetSdkVersion
都设置为 15 或更低,系统将隐式授予您的应用程序此权限。如果您不需要此权限,请确保你的targetSdkVersion
为16或更高。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。READ_CONTACTS
允许应用程序读取用户的联系人数据。READ_EXTERNAL_STORAGE
允许应用程序从外部存储读取。注意:从 API 级别 33 开始,此权限无效。如果您的应用程序访问其他应用程序的媒体文件,请改为请求这些权限中的一项或多项:READ_MEDIA_IMAGES、、 READ_MEDIA_VIDEO。 READ_MEDIA_AUDIO详细了解 与媒体文件关联的存储权限。这个权限里还有很多的描述,具体请查看API文档。READ_LOGS
允许应用程序读取低级系统日志文件。不供第三方应用程序使用,因为日志条目可能包含用户的私人信息。READ_MEDIA_AUDIO
允许应用程序从外部存储读取音频文件。在API 级别 33 中添加READ_MEDIA_IMAGES
允许应用程序从外部存储读取图像文件。在API 级别 33 中添加READ_MEDIA_VIDEO
允许应用程序从外部存储读取视频文件。READ_PHONE_NUMBERS
允许读取设备的电话号码。这是由READ_PHONE_STATE
授权的一个子集,但但是暴露于即时的应用程序。在API 级别 26 中添加READ_PHONE_STATE
允许以只读方式访问手机状态(比如:设备的IMEI),包括当前的蜂窝网络信息、任何正在进行的通话的状态以及设备上注册的任何PhoneAccount
的列表。READ_PRECISE_PHONE_STATE
允许只读访问精确的电话状态。允许读取有关特殊用途应用程序(例如拨号器、运营商应用程序或 ims 应用程序)的电话状态的详细信息。READ_SMS
允许应用程序读取 SMS 消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。REBOOT
需要能够重新启动设备。不供第三方应用程序使用。RECEIVE_BOOT_COMPLETED
允许应用程序在系统完成启动后接收Intent.ACTION_BOOT_COMPLETED广播RECEIVE_MMS
允许应用程序监控传入的彩信。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。RECEIVE_SMS
允许应用程序接收 SMS 消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。RECEIVE_WAP_PUSH
允许应用程序接收 WAP 推送消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。RECORD_AUDIO
允许应用程序录制音频。REORDER_TASKS
允许应用程序更改任务的 Z 顺序。排序系统任务权限,重新排序系统Z轴运行中的任务,南站记录仪中使用了这个权限,估计是为了让程序可以从后台弹到前面。REQUEST_COMPANION_RUN_IN_BACKGROUND
允许配套应用程序在后台运行。此权限意味着 REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND,并允许从后台启动前台服务。如果一个应用不必在后台运行,而只需要从后台启动一个前台服务,可以考虑使用 REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND,功能较弱。REQUEST_COMPANION_SELF_MANAGED
允许应用程序创建“自我管理”关联。在API 级别 33 中添加REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND
允许配套应用从后台启动前台服务。在API 级别 31 中添加REQUEST_COMPANION_USE_DATA_IN_BACKGROUND
允许配套应用在后台使用数据。REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
应用程序必须持有权限才能使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.RUN_LONG_JOBS
允许应用程序使用长时间运行的作业 API。这是一种特殊的访问权限,可以由系统或用户撤销。应用程序需要针对 APIBuild.VERSION_CODES.UPSIDE_DOWN_CAKE或更高版本才能请求此权限。SCHEDULE_EXACT_ALARM
允许应用程序使用精确的警报 API。SEND_SMS
允许应用程序发送 SMS 消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。SET_ALARM
允许应用程序广播 Intent 以为用户设置闹钟。SET_DEBUG_APP
配置应用程序以进行调试。不供第三方应用程序使用。SET_TIME
允许应用程序直接设置系统时间。不供第三方应用程序使用。SET_TIME_ZONE
允许应用程序直接设置系统时区。不供第三方应用程序使用。SET_WALLPAPER
允许应用程序设置壁纸。SMS_FINANCIAL_TRANSACTIONS
允许金融应用程序读取过滤的短信。保护等级:签名|app。此常量在 API 级别 31 中已弃用。使用此权限的 API 不再起作用。STATUS_BAR
允许应用程序打开、关闭或禁用状态栏及其图标。不供第三方应用程序使用。SYSTEM_ALERT_WINDOW
悬浮窗权限,允许应用使用WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
类型创建窗口 ,显示在所有其他应用之上。很少有应用程序应该使用此权限;这些窗口用于与用户进行系统级交互。注意:如果应用程序以 API 级别 23 或更高级别为目标,则应用程序用户必须通过权限管理屏幕明确向应用程序授予此权限。该应用程序通过发送 intent with action Settings.ACTION_MANAGE_OVERLAY_PERMISSION
来请求用户的批准 。应用可以通过调用Settings.canDrawOverlays()
来检查自己是否有这个权限 。TRANSMIT_IR
允许使用设备的 IR 发射器(如果可用)。USE_FINGERPRINT
允许应用使用指纹硬件。此常量在 API 级别 28 中已弃用。应用程序应改为USE_BIOMETRIC
请求USE_FULL_SCREEN_INTENT
对于Build.VERSION_CODES.Q
想要使用 notification full screen intents.VIBRATE
允许访问振动器。WAKE_LOCK
允许使用 PowerManager WakeLocks 防止处理器休眠或屏幕变暗。WRITE_APN_SETTINGS
允许应用程序写入 apn 设置并读取现有 apn 设置的敏感字段,如用户和密码。不供第三方应用程序使用。WRITE_CALENDAR
允许应用程序写入用户的日历数据。WRITE_CALL_LOG
允许应用程序写入(但不能读取)用户的通话记录数据。WRITE_CONTACTS
允许应用程序写入用户的联系人数据。WRITE_EXTERNAL_STORAGE
允许应用程序写入外部存储。WRITE_SECURE_SETTINGS
允许应用程序读取或写入安全系统设置,比如打开或关闭GPS。不供第三方应用程序使用。WRITE_SETTINGS
允许应用程序读取或写入系统设置。注意:如果应用程序以 API 级别 23 或更高级别为目标,则应用程序用户必须通过权限管理屏幕明确向应用程序授予此权限。该应用程序通过发送 intent with action Settings.ACTION_MANAGE_WRITE_SETTINGS
来请求用户的批准 。应用可以通过调用 来检查自己是否有这个权限Settings.System.canWrite()
。ACCESS_BACKGROUND_LOCATION
允许应用程序在后台访问位置信息。如果您请求此权限,则还必须请求ACCESS_COARSE_LOCATION
或 ACCESS_FINE_LOCATION
。单独请求此权限不会为您提供位置访问权限。ACCESS_COARSE_LOCATION
允许应用访问大概位置。或者,您可能想要ACCESS_FINE_LOCATION
。ACCESS_FINE_LOCATION
允许应用访问精确位置。或者,您可能想要ACCESS_COARSE_LOCATION
。ACCESS_MEDIA_LOCATION
允许应用程序访问保存在用户共享集合中的任何地理位置。ANSWER_PHONE_CALLS
允许该应用接听来电。BLUETOOTH_ADVERTISE
需要能够向附近的蓝牙设备做广告。在API 级别 31 中添加。BLUETOOTH_CONNECT
需要能够连接到配对的蓝牙设备。在API 级别 31 中添加。BLUETOOTH_SCAN
需要能够发现和配对附近的蓝牙设备。在API 级别 31 中添加。CALL_PHONE
允许应用程序发起电话呼叫,而无需通过 Dialer 用户界面让用户确认呼叫。CAMERA
需要能够访问相机设备。GET_ACCOUNTS
允许访问帐户服务中的帐户列表。OVERRIDE_WIFI_CONFIG
允许应用程序修改任何 wifi 配置,即使是由另一个应用程序创建的。重新配置后,原始创建者无法进行任何进一步的修改。不供第三方应用程序使用。POST_NOTIFICATIONS
允许应用发布通知。PROCESS_OUTGOING_CALLS
允许应用程序在拨出呼叫期间查看正在拨打的号码,并可选择将呼叫重定向到不同的号码或完全中止呼叫。API 29 中已弃用。READ_CALENDAR
允许应用程序读取用户的日历数据。READ_CALL_LOG
允许应用程序读取用户的通话记录。注意:如果您的应用程序使用READ_CONTACTS
允许应用程序读取用户的联系人数据。READ_EXTERNAL_STORAGE
允许应用程序从外部存储读取。注意:从 API 级别 33 开始,此权限无效。如果您的应用程序访问其他应用程序的媒体文件,请改为请求这些权限中的一项或多项:READ_MEDIA_IMAGES、、 READ_MEDIA_VIDEO。 READ_MEDIA_AUDIO详细了解 与媒体文件关联的存储权限。这个权限里还有很多的描述,具体请查看API文档。READ_MEDIA_AUDIO
READ_MEDIA_VIDEO
READ_PHONE_NUMBERS
允许读取设备的电话号码。这是由READ_PHONE_STATE
授权的一个子集,但但是暴露于即时的应用程序。在API 级别 26 中添加READ_PHONE_STATE
允许以只读方式访问手机状态,包括当前的蜂窝网络信息、任何正在进行的通话的状态以及设备上注册的任何PhoneAccount
的列表READ_SMS
允许应用程序读取 SMS 消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。RECEIVE_MMS
允许应用程序监控传入的彩信。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。RECEIVE_SMS
允许应用程序接收 SMS 消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。RECEIVE_WAP_PUSH
允许应用程序接收 WAP 推送消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。SEND_SMS
允许应用程序发送 SMS 消息。这是一个硬性限制权限,在记录的安装程序将权限列入白名单之前,应用程序无法持有该权限。有关详细信息,请参阅 PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)。WRITE_CALENDAR
允许应用程序写入用户的日历数据。WRITE_CALL_LOG
允许应用程序写入(但不能读取)用户的通话记录数据。WRITE_EXTERNAL_STORAGE
允许应用程序写入外部存储。INSTALL_PACKAGES
允许应用程序安装包。不供第三方应用程序使用。
DELETE_PACKAGES
允许应用程序删除包。不供第三方应用程序使用。从开始Build.VERSION_CODES.N,当删除包的应用程序与安装包的应用程序不同时,将请求用户确认。
REQUEST_INSTALL_PACKAGES
允许应用程序请求安装包。以 API 大于 25 为目标的应用程序必须持有此权限才能使用Intent.ACTION_INSTALL_PACKAGE。 保护等级:签名
REQUEST_DELETE_PACKAGES
允许应用程序请求删除包。以 APIBuild.VERSION_CODES.P或更高版本为目标的应用程序必须持有此权限才能使用Intent.ACTION_UNINSTALL_PACKAGEor PackageInstaller.uninstall(VersionedPackage, IntentSender)。
INSTANT_APP_FOREGROUND_SERVICE
允许一个即时通信app创建前台服务。 添加在API26MANAGE_EXTERNAL_STORAGE
允许应用程序广泛访问范围存储中的外部存储。旨在供少数需要代表用户管理文件的应用程序使用。MANAGE_MEDIA
允许应用程序在未经用户确认的情况下修改和删除此设备或任何连接的存储设备上的媒体文件。PACKAGE_USAGE_STATS
允许应用程序收集组件使用统计信息。声明权限意味着使用 API 的意图,并且设备的用户可以通过“设置”应用程序授予权限。SYSTEM_ALERT_WINDOW
悬浮窗权限,允许应用使用WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
类型创建窗口 ,显示在所有其他应用之上。很少有应用程序应该使用此权限;这些窗口用于与用户进行系统级交互。注意:如果应用程序以 API 级别 23 或更高级别为目标,则应用程序用户必须通过权限管理屏幕明确向应用程序授予此权限。该应用程序通过发送 intent with action Settings.ACTION_MANAGE_OVERLAY_PERMISSION
来请求用户的批准 。应用可以通过调用Settings.canDrawOverlays()
来检查自己是否有这个权限 。有些权限在最新的Manifest.permission
中并未找到比如:
<!--关机权限-->
<uses-permission android:name="android.permission.SHUTDOWN" tools:ignore="ProtectedPermissions" />
<!--获取手机号及通话状态,比如:获取手机IMEI-->
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:ignore="ProtectedPermissions" />
<!--获取MAC地址-->
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" tools:ignore="ProtectedPermissions" />
<!--发送广播需要的权限 -->
<uses-permission android:name="android.Manifest.permission.INTERACT_ACROSS_USERS" />
<!--写外置的SDCard时需要的权限,且要求app为系统应用才行。不加这个权限只能访问外置SDCard的android/data/[packagename]位置-->
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" tools:ignore="ProtectedPermissions" />
<!--Wifi热点权限-->
<uses-permission android:name="android.permission.MANAGE_USERS" tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.CREATE_USERS" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.DEVICE_POWER" tools:ignore="ProtectedPermissions" />
运行时权限和特殊权限需要在运行时申请。
在所有权限API中:https://developer.android.com/reference/android/Manifest.permission,可以查看保护级别,就有normal、signature、appop
<uses-permission-sdk-23>
元素而不是<uses-permission>
元素 。使用这些元素中的任何一个时,您可以设置该maxSdkVersion属性以指示运行高于指定值的 Android 版本的设备不需要特定权限。这使您可以消除不必要的权限,同时仍然为旧设备提供兼容性。例如,您的应用可能会显示用户在您的应用中创建的媒体内容,例如照片或视频。在这种情况下,您无需 READ_EXTERNAL_STORAGE 在运行 Android 10(API 级别 29)或更高版本的设备上使用该权限,只要您的应用面向 Android 10 或更高版本。但是,为了与旧设备兼容,您可以声明READ_EXTERNAL_STORAGE权限并将其设置 android:maxSdkVersion为 28。当权限被撤销时,应用程序进程终止:如果用户撤销了一次性权限,比如在系统设置中,无论您是否启动了前台服务,您的应用都无法访问数据。与任何权限一样,如果用户撤销您应用的一次性权限,您的应用进程将终止。
自动重置未使用应用程序的权限:如果您的应用以 Android 11(API 级别 30)或更高版本为目标,并且几个月未使用,系统会通过自动重置用户授予您的应用的敏感运行时权限来保护用户数据。在指南中了解有关应用程序休眠的更多信息。
必要时请求成为默认处理程序:某些应用依赖于访问与通话记录和短信相关的敏感用户信息。如果您想请求特定于通话记录和 SMS 消息的权限并将您的应用程序发布到 Play 商店,您必须在请求这些运行时权限之前提示用户将您的应用程序设置为核心系统功能的默认处理程序。有关默认处理程序的更多信息,包括向用户显示默认处理程序提示的指南,请参阅有关仅在默认处理程序中使用的权限的指南。
授予所有运行时权限以进行测试:要在模拟器或测试设备上安装应用程序时自动授予所有运行时权限,请使用-g
该adb shell install
命令的选项,如以下代码片段所示:
adb shell install -g PATH_TO_APK_FILE
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。