文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android权限列表(基于Android 14)

2023-09-01 16:06

关注

一、简介

权限的目的为了保护用户隐私,应用在访问一些敏感数据时,必须事先取得用户授权后才能使用,比如:比如读取sdcard、访问通讯录等。
在Android6.0之前的设备上,系统不会提醒用户正在获取的权限。一旦安装应用,就意味着该应用所需的所有权限均已经得到授权。在这种情况下应用可以自由收集用户隐私信息。或者随意发送短信。为了解决这个问题在Android6.0之后的设备上,应用需要动态授权,当需要使用某个权限时,会弹出一个提醒框来征求用户意见,只有取得用户同意后才能继续使用。

二、权限分类

android中所有的预定义权限(不包括厂商自定义的)都可以在Manifest.permission这个静态类中找到定义,android把权限分为三大类:普通权限、危险权限、特殊权限,每一种类型的权限都分配一个对应的Protection Level,分别为:normal、dangerous、appop和signature等,下面简单介绍一下这几种类型的权限:

1.普通权限

普通权限也叫正常权限,Protection Level为normal,它不需要动态申请,你只需要在AndroidManifest.xml中静态地声明,然后系统在应用安装时就会自动的授予该应用相应的权限,当应用获得授权时,它就可以访问应用沙盒外受该普通权限保护地数据或操作,这些数据或操作不会泄漏或篡改用户的隐私,对用户或其他应用几乎没有风险。

2.危险权限

危险权限也叫运行时权限,Protection Level为dangerous,跟普通权限相反,一旦应用获取了该类权限,用户的隐私数据就会面临被泄露或篡改的风险,所以如果你想使用该权限保护的数据或操作,就必须在AndroidManifest.xml中静态地声明需要用到的危险权限,并在访问这些数据或操作前动态的申请权限,系统就会弹出一个权限请求弹窗征求用户的同意,除非用户同意该权限,否则你不能使用该权限保护的数据或操作。
所有的危险权限都有对应的权限组,android预定义了15个权限组(根据android 14总结),这15个权限组中包含了41个危险权限和几个普通权限,当我们动态的申请某个危险权限时,都是按权限组申请的,当用户一旦同意授权该危险权限,那么该权限所对应的权限组中的其他在AndroidManifest.xml中注册的权限也会同时被授权,android预定义的15个权限组包含的危险权限如下:

权限组名引入版本API权限引入版本API
ACTIVITY_RECOGNITION(识别用户活动)10.0(Q)29ACTIVITY_RECOGNITION10.0(Q)29
CALENDAR(日历)4.2(Jelly Bean)17READ_CALENDAR1.0(Base)1
WRITE_CALENDAR1.0(Base)1
CALL_LOG(通话记录)9.0(Pie)28PROCESS_OUTGOING_CALLS1.0(Base)+10.0(Q)-1+ 29-
READ_CALL_LOG4.1(Jelly Bean)16
WRITE_CALL_LOG4.1(Jelly Bean)16
CAMERA(相机)4.2(Jelly Bean)17CAMERA1.0(Base)1
CONTACTS(联系人)6.0(Marshmallow)23READ_CONTACTS1.0(Base)1
GET_ACCOUNTS1.0(Base)1
WRITE_CONTACTS1.0(Base)1
LOCATION(位置)1.0(Base)1ACCESS_BACKGROUND_LOCATION10.0(Q)29
ACCESS_COARSE_LOCATION1.0(Base)1
ACCESS_FINE_LOCATION1.0(Base)1
MICROPHONE(麦克风)4.2(Jelly Bean)17RECORD_AUDIO1.0(Base)1
NEARBY_DEVICES(附近的蓝牙设备)12.0(S)31BLUETOOTH_ADVERTISE12.0(S)31
BLUETOOTH_CONNECT12.0(S)31
BLUETOOTH_SCAN12.0(S)31
NOTIFICATIONS(通知)13.0(Tiramisu)33POST_NOTIFICATIONS13.0(Tiramisu)33
PHONE(手机)6.0(Marshmallow)23ACCEPT_HANDOVER9.0(Pie)28
ADD_VOICEMAIL4.0(IceCreamSandwich)14
ANSWER_PHONE_CALLS8.0(Oreo)26
CALL_PHONE1.0(Base)1
READ_PHONE_NUMBERS8.0(Oreo)26
READ_PHONE_STATE1.0(Base)1
USE_SIP2.3(Gingerbread)9
READ_MEDIA_AURAL(读取音频)13.0(Tiramisu)33
READ_MEDIA_VISUAL(读取图像和视频)13.0(Tiramisu)33
SENSORS(传感器)6.0(Marshmallow)23BODY_SENSORS4.4W(KitKat Wear)20
BODY_SENSORS_BACKGROUND13.0(Tiramisu)33
SMS(短信)6.0(Marshmallow)23READ_SMS1.0(Base)1
RECEIVE_MMS1.0(Base)1
RECEIVE_SMS1.0(Base)1
RECEIVE_WAP_PUSH1.0(Base)1
SEND_SMS1.0(Base)1
STORAGE(存储卡)1.6(Donut)4READ_EXTERNAL_STORAGE4.1(Jelly Bean)16
READ_MEDIA_AUDIO13.0(Tiramisu)33
READ_MEDIA_IMAGES13.0(Tiramisu)33
READ_MEDIA_VIDEO13.0(Tiramisu)33
READ_MEDIA_VISUAL_USER_SELECTED14.034
WRITE_EXTERNAL_STORAGE1.6(Donut)4
ACCESS_MEDIA_LOCATION10.0(Q)29
NEARBY_WIFI_DEVICES13.0(Tiramisu)33
UWB_RANGING12.0(S)31

3.特殊权限

特殊权限用于保护一些特定的应用程序操作,Protection Level为appop(应用操作)、installer(安装程序)、role(职责)、privileged(特权)、signature(签名)等。

· 应用操作

Protection Level为appop,使用前也需要在AndroidManifest.xml中静态地声明,也需要动态的申请,但是它不同于危险权限的申请,危险权限的申请会弹出一个对话框询问你是否同意,而此权限的申请需要跳转到指定的设置界面,让你手动点击toggle按钮确认是否同意

· 签名权限

Protection Level为signature,只对拥有相同签名的应用开放,它也不需要动态申请,例如应用A在AndroidManifest.xml中自定义了一个permission且在权限标签中加入android:protectionLevel=”signature”,表示应用A声明了一个签名权限,那么应用B想要访问应用A受该权限保护的数据时,必须要在AndroidManifest.xml中声明该权限,同时要用与应用A相同的签名打包,这样系统在应用B安装时才会自动地授予应用B该权限,应用B在获得授权后就可以访问该权限控制的数据,其他应用即使知道这个权限,也在AndroidManifest.xml中声明了该权限,但由于应用签名不同,安装时系统不会授予它该权限,这样其他应用就无法访问受该权限保护的数据。
还有一些签名权限不会供第三方应用程序使用,只会供系统预装应用使用,这种签名权限的Protection Level为signature和privileged。

· 权限明细

以下列出所有特殊权限(根据android 14总结,按照appop、installer、role、privileged、signature顺序列出)

权限引入版本APIProtection Level
FOREGROUND_SERVICE_SPECIAL_USE14.034normal|appop|instant
INSTANT_APP_FOREGROUND_SERVICE8.0(Oreo)26signature|development|instant|appop
LOADER_USAGE_STATS11.0(R)30signature|privileged|appop
MANAGE_EXTERNAL_STORAGE11.0(R)30signature|appop|preinstalled
MANAGE_MEDIA12.0(S)31signature|appop|preinstalled
MANAGE_ONGOING_CALLS12.0(S)31signature|appop
PACKAGE_USAGE_STATS6.0(Marshmallow)23signature|privileged|development|appop|retailDemo
SCHEDULE_EXACT_ALARM12.0(S)31signature|privileged|appop
SMS_FINANCIAL_TRANSACTIONS10.0(Q)+12.0(S)-29+31-signature|appop
SYSTEM_ALERT_WINDOW1.0(Base)1signature|setup|appop|installer|pre23|development
USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER12.0(S)31signature|appop
WRITE_SETTINGS1.0(Base)1signature|preinstalled|appop|pre23
START_VIEW_APP_FEATURES13.0(Tiramisu)33signature|installerinstaller
START_VIEW_PERMISSION_USAGE10.0(Q)29signature|installer
PROVIDE_REMOTE_CREDENTIALS14.034signature|privileged|role
READ_VOICEMAIL5.0(Lollipop)21signature|privileged|role
WRITE_VOICEMAIL5.0(Lollipop)21signature|privileged|role
EXECUTE_APP_ACTION14.034internal|role
LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE14.034internal|role
MANAGE_DEVICE_LOCK_STATE14.034internal|role
PROVIDE_OWN_AUTOFILL_SUGGESTIONS14.034internal|role
SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE13.0(Tiramisu)33signature|role
SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE13.0(Tiramisu)33signature|role
READ_ASSISTANT_APP_SEARCH_DATA13.0(Tiramisu)33role
READ_HOME_APP_SEARCH_DATA13.0(Tiramisu)33role
BATTERY_STATS1.0(Base)1signature|privileged|development
CHANGE_CONFIGURATION1.0(Base)1signature|privileged|development
BIND_CALL_REDIRECTION_SERVICE10.0(Q)29signature|privileged
BIND_CARRIER_SERVICES6.0(Marshmallow)23signature|privileged
BIND_INCALL_SERVICE6.0(Marshmallow)23signature|privileged
BIND_REMOTEVIEWS3.0(Honeycomb)11signature|privileged
BIND_SCREENING_SERVICE7.0(Nougat)24signature|privileged
BIND_TELECOM_CONNECTION_SERVICE6.0(Marshmallow)23signature|privileged
BIND_TV_INPUT5.0(Lollipop)21signature|privileged
BIND_TV_INTERACTIVE_APP13.0(Tiramisu)33signature|privileged
BIND_VISUAL_VOICEMAIL_SERVICE8.0(Oreo)26signature|privileged
BIND_WALLPAPER2.2(Froyo)8signature|privileged
CLEAR_APP_CACHE1.0(Base)1signature|privileged
DELETE_CACHE_FILES1.0(Base)1signature|privileged
GET_ACCOUNTS_PRIVILEGED6.0(Marshmallow)23signature|privileged
GLOBAL_SEARCH1.6(Donut)4signature|privileged
BLUETOOTH_PRIVILEGED4.4(KitKat)19privileged
CALL_PRIVILEGED1.0(Base)1privileged
MANAGE_WIFI_NETWORK_SELECTION13.0(Tiramisu)33privileged
START_FOREGROUND_SERVICES_FROM_BACKGROUND12.0(S)31privileged
BIND_ACCESSIBILITY_SERVICE4.1(Jelly Bean)16signature
BIND_AUTOFILL_SERVICE8.0(Oreo)26signature
BIND_CARRIER_MESSAGING_CLIENT_SERVICE10.0(Q)29signature
BIND_CHOOSER_TARGET_SERVICE6.0(Marshmallow)+11.0(R)-23+30-signature
BIND_CONDITION_PROVIDER_SERVICE7.0(Nougat)24signature
BIND_CREDENTIAL_PROVIDER_SERVICE14.034signature
BIND_DEVICE_ADMIN2.2(Froyo)8signature
BIND_DREAM_SERVICE5.0(Lollipop)21signature
BIND_INPUT_METHOD1.5(Cupcake)3signature
BIND_MIDI_DEVICE_SERVICE6.0(Marshmallow)23signature
BIND_NFC_SERVICE4.4(KitKat)19signature
BIND_NOTIFICATION_LISTENER_SERVICE4.3(Jelly Bean)18signature
BIND_PRINT_SERVICE4.4(KitKat)19signature
BIND_QUICK_ACCESS_WALLET_SERVICE11.0(R)30signature
BIND_TEXT_SERVICE4.0(IceCreamSandwich)14signature
BIND_VOICE_INTERACTION5.0(Lollipop)21signature
BIND_VPN_SERVICE4.0(IceCreamSandwich)14signature
BIND_VR_LISTENER_SERVICE7.0(Nougat)24signature
REQUEST_INSTALL_PACKAGES6.0(Marshmallow)23signature

来源地址:https://blog.csdn.net/duoluo9/article/details/131248443

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯