app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈

背景:

我们在开发安卓端和苹果端app会用到各种功能,但是开发对应的功能就必须开启对应的用户权限,本文一方面把安卓苹果对应权限列出(长期更新),

在安卓Android应用中,权限是用来控制应用访问设备功能和数据的。以下是一些常见的权限及其对应解释:

安卓(Android)开发-权限列表以及对应的解释

  1. android.permission.ACCESS_COARSE_LOCATION - 允许应用通过WiFi或移动基站的方式获取粗略的位置信息。
  2. android.permission.ACCESS_FINE_LOCATION - 允许应用通过GPS或其他精确位置源获取精确的位置信息。
  3. android.permission.ACCESS_NETWORK_STATE - 允许应用访问有关网络连接状态的信息。
  4. android.permission.ACCESS_WIFI_STATE - 允许应用访问有关WiFi状态的信息。
  5. android.permission.ADD_VOICEMAIL - 允许应用添加语音邮件系统。
  6. android.permission.BATTERY_STATS - 允许应用收集电池使用统计信息。
  7. android.permission.BLUETOOTH - 允许应用连接到已配对的蓝牙设备。
  8. android.permission.BLUETOOTH_ADMIN - 允许应用发现和配对蓝牙设备。
  9. android.permission.BROADCAST_STICKY - 允许应用发送持久的广播消息。
  10. android.permission.CALL_PHONE - 允许应用发起电话呼叫。
  11. android.permission.CAMERA - 允许应用访问相机硬件进行拍照或录像。
  12. android.permission.CHANGE_NETWORK_STATE - 允许应用改变网络连接状态。
  13. android.permission.CHANGE_WIFI_STATE - 允许应用改变WiFi连接状态。
  14. android.permission.DISABLE_KEYGUARD - 允许应用禁用键盘锁。
  15. android.permission.EXPAND_STATUS_BAR - 允许应用展开或收缩状态栏。
  16. android.permission.FACTORY_TEST - 作为制造商测试程序运行应用。
  17. android.permission.FLASHLIGHT - 允许应用访问闪光灯。
  18. android.permission.GET_ACCOUNTS - 允许应用访问设备上的账户列表。
  19. android.permission.GET_PACKAGE_SIZE - 允许应用获取其他应用的大小信息。
  20. android.permission.GET_TASKS - 允许应用获取最近运行的任务信息。
  21. android.permission.HARDWARE_TEST - 允许应用访问硬件进行测试。
  22. android.permission.INSTALL_PACKAGES - 允许应用安装软件包(系统应用专用)。
  23. android.permission.INTERNAL_SYSTEM_WINDOW - 允许应用打开系统用户界面的窗口。
  24. android.permission.ACCESS_MOCK_LOCATION - 允许应用创建模拟位置提供者用于测试。
  25. android.permission.WRITE_CONTACTS - 允许应用写入(但不是读取)用户的联系人数据。
  26. android.permission.READ_CONTACTS - 允许应用读取用户的联系人数据。
  27. android.permission.READ_CALENDAR - 允许应用读取用户的日历数据。
  28. android.permission.WRITE_CALENDAR - 允许应用写入用户的日历数据。
  29. android.permission.READ_PHONE_STATE - 允许应用访问电话状态信息。
  30. android.permission.RECEIVE_SMS - 允许应用接收短信。
  31. android.permission.SEND_SMS - 允许应用发送短信。
  32. android.permission.READ_SMS - 允许应用读取短信。
  33. android.permission.WRITE_SMS - 允许应用写入短信。
  34. android.permission.RECORD_AUDIO - 允许应用录制音频。
  35. android.permission.MOUNT_UNMOUNT_FILESYSTEMS - 允许应用挂载和卸载文件系统。
  36. android.permission.READ_EXTERNAL_STORAGE - 允许应用读取外部存储设备上的文件。
  37. android.permission.WRITE_EXTERNAL_STORAGE - 允许应用写入外部存储设备上的文件。
  38. android.permission.ACCESS_MEDIA_LOCATION - 允许应用访问共享媒体位置。
  39. android.permission.ACCESS_NOTIFICATION_POLICY - 允许应用访问通知策略。
  40. android.permission.ACCESS_BACKGROUND_LOCATION - 允许应用在后台访问位置信息。
  41. android.permission.ANSWER_PHONE_CALLS - 允许应用接听电话。
  42. android.permission.CAPTURE_AUDIO_OUTPUT - 允许应用捕获音频输出。
  43. android.permission.CAPTURE_VIDEO_OUTPUT - 允许应用捕获视频输出。
  44. android.permission.ACCESS_WALLPAPER - 允许应用访问壁纸。
  45. android.permission.ACCESS_WALLPAPER_SETTINGS - 允许应用访问壁纸设置。
  46. android.permission.AUDIO_FOCUS_CHANGE - 允许应用接收音频焦点变化的事件。
  47. android.permission.CLEAR_APP_USER_DATA - 允许应用清除用户数据。
  48. android.permission.CONTROL_LOCATION_UPDATES - 允许应用启用或禁用位置更新。
  49. android.permission.DELETE_CACHE_FILES - 允许应用删除缓存文件。
  50. android.permission.DELETE_PACKAGES - 允许应用删除软件包(系统应用专用)。
  51. android.permission.DEVICE_POWER - 允许应用访问设备的电源管理。
  52. android.permission.DIAGNOSTIC - 允许应用访问诊断资源。
  53. android.permission.DISABLE_KEYGUARD_FEATURES - 允许应用禁用键盘锁的特定功能。
  54. android.permission.DUMP - 允许应用获取系统服务的状态信息。
  55. android.permission.FORCE_BACK - 允许应用强制后退操作。
  56. android.permission.GET_TASKS - 允许应用获取最近运行的任务信息。
  57. android.permission.HARDWARE_TEST - 允许应用访问硬件进行测试。
  58. android.permission.INJECT_EVENTS - 允许应用注入用户事件到系统中。
  59. android.permission.INSTALL_LOCATION_PROVIDER - 允许应用安装位置提供者。
  60. android.permission.MANAGE_APP_TOKENS - 允许应用管理窗口管理器的令牌。
  61. android.permission.MASTER_CLEAR - 允许应用执行硬重置。
  62. android.permission.MEDIA_CONTENT_CONTROL - 允许应用管理音频和视频播放。
  63. android.permission.MODIFY_AUDIO_SETTINGS - 允许应用修改全局音频设置。
  64. android.permission.MODIFY_PHONE_STATE - 允许应用修改电话状态。
  65. android.permission.MOUNT_FORMAT_FILESYSTEMS - 允许应用格式化可移动存储设备。
  66. android.permission.PERSISTENT_ACTIVITY - 允许应用设置持久的活动。
  67. android.permission.PROCESS_OUTGOING_CALLS - 允许应用监控、修改或中止呼出电话。
  68. android.permission.READ_FRAME_BUFFER - 允许应用读取帧缓冲数据。
  69. android.permission.READ_INPUT_STATE - 允许应用获取当前按键状态。
  70. android.permission.READ_LOGS - 允许应用读取底层系统日志文件。
  71. android.permission.READ_OWNER_DATA - 允许应用读取所有者数据。
  72. android.permission.READ_SMS - 允许应用读取短信。
  73. android.permission.READ_SYNC_SETTINGS - 允许应用读取同步设置。
  74. android.permission.READ_SYNC_STATS - 允许应用读取同步状态。
  75. android.permission.REBOOT - 允许应用重启设备。
  76. android.permission.RECEIVE_BOOT_COMPLETED - 允许应用接收系统启动完成事件。
  77. android.permission.RECEIVE_MMS - 允许应用接收多媒体短信。
  78. android.permission.RECEIVE_WAP_PUSH - 允许应用接收WAP推送消息。
  79. android.permission.RECORD_AUDIO - 允许应用录制音频。
  80. android.permission.REORDER_TASKS - 允许应用改变任务的Z轴排列。
  81. android.permission.RESTART_PACKAGES - 允许应用重启其他应用。
  82. android.permission.SEND_SMS - 允许应用发送短信。
  83. android.permission.SET_ACTIVITY_WATCHER - 允许应用监控或控制全局系统中的活动。
  84. android.permission.SET_ALWAYS_FINISH - 允许应用控制活动是否在后台时立即完成。
  85. android.permission.SET_ANIMATION_SCALE - 允许应用设置全局动画缩放因子。
  86. android.permission.SET_DEBUG_APP - 允许应用配置调试程序。
  87. android.permission.SET_ORIENTATION - 允许应用设置屏幕方向和实际旋转。
  88. android.permission.SET_PREFERRED_APPLICATIONS - 允许应用修改首选应用程序列表。
  89. android.permission.SET_PROCESS_FOREGROUND - 允许应用将当前运行的进程强行到前台。
  90. android.permission.SET_PROCESS_LIMIT - 允许应用设置最大运行进程数量。
  91. android.permission.SET_TIME_ZONE - 允许应用设置时区。
  92. android.permission.SET_WALLPAPER - 允许应用设置壁纸。
  93. android.permission.SET_WALLPAPER_HINTS - 允许应用设置壁纸提示。
  94. android.permission.SIGNAL_PERSISTENT_PROCESSES - 允许应用请求向所有持久进程发送信号。
  95. android.permission.STATUS_BAR - 允许应用打开、关闭或禁用状态栏及图标。
  96. android.permission.SUBSCRIBED_FEEDS_READ - 允许应用访问订阅的RSS Feed内容。
  97. android.permission.SYSTEM_ALERT_WINDOW - 允许应用在所有其他应用之上打开窗口。
  98. android.permission.VIBRATE - 允许应用访问振动设备。
  99. android.permission.WAKE_LOCK - 允许应用使用PowerManager的WakeLock来保持CPU运行,屏幕变暗或屏幕关闭。
  100. android.permission.WRITE_APN_SETTINGS - 允许应用写入API设置。

请注意,从Android 6.0(API级别23)开始,一些权限需要在运行时请求用户的许可。此外,从Android 10(API级别29)开始,对于外部存储的访问有了新的限制,应用需要适配分区存储(Scoped Storage)的规范。

苹果(ios)开发-权限列表以及对应的解释

应用的权限是通过Info.plist文件来声明的,在info.plist文件中。

  1. NSLocationWhenInUseUsageDescription - 当应用需要访问位置信息时向用户说明理由。
  2. NSLocationAlwaysUsageDescription - 当应用需要在后台访问位置信息时向用户说明理由。
  3. NSCameraUsageDescription - 当应用需要访问相机时向用户说明理由。
  4. NSMicrophoneUsageDescription - 当应用需要访问麦克风时向用户说明理由。
  5. NSPhotoLibraryUsageDescription - 当应用需要访问用户的照片库时向用户说明理由。
  6. NSContactsUsageDescription - 当应用需要访问用户的联系人信息时向用户说明理由。
  7. NSCalendarUsageDescription - 当应用需要访问用户的日历信息时向用户说明理由。
  8. NSRemindersUsageDescription - 当应用需要访问用户的提醒事项时向用户说明理由。
  9. NSSiriUsageDescription - 当应用需要使用Siri功能时向用户说明理由。
  10. NSMicrophoneUsageDescription - 当应用需要访问麦克风时向用户说明理由。
  11. NSBluetoothPeripheralUsageDescription - 当应用需要访问蓝牙功能时向用户说明理由。
  12. NSHealthUpdateUsageDescription - 当应用需要访问健康更新数据时向用户说明理由。
  13. NSHealthShareUsageDescription - 当应用需要访问健康共享数据时向用户说明理由。
  14. NSHomeKitUsageDescription - 当应用需要访问HomeKit功能时向用户说明理由。
  15. NSAppleMusicUsageDescription - 当应用需要访问Apple Music功能时向用户说明理由。
  16. NSFaceIDUsageDescription - 当应用需要使用Face ID进行身份验证时向用户说明理由。
  17. NSPhotoLibraryAddUsageDescription - 当应用需要向用户的照片库添加内容时向用户说明理由。
  18. NFCReaderUsageDescription - 当应用需要访问NFC功能时向用户说明理由。
  19. NSAppleScriptEnabled - 表明应用可以使用AppleScript。
  20. NSUserActivityTypes - 定义应用支持的用户活动类型。
  21. NSUbiquitousContainerIdentifier - 定义应用在iCloud上的容器标识符。
  22. NSFileProviderDomain - 定义应用提供的文件服务的域名。
  23. NSBluetoothAlwaysUsageDescription - 当应用需要在后台访问蓝牙功能时向用户说明理由。
  24. NSLocationAlwaysAndWhenInUseUsageDescription - 当应用需要在任何情况下访问位置信息时向用户说明理由。

请注意,从iOS 10开始,苹果要求开发者在Info.plist文件中为所有可能访问的敏感数据添加描述,以便在用户首次尝试使用这些功能时,系统能够显示相应的提示信息。这些描述应该清晰地说明为什么应用需要这些权限以及如何使用这些权限。

uniapp打包自带的权限

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="com.asus.msa.SupplementaryDID.ACCESS" />

<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />

<uses-permission android:name="android.permission.INSTALL_PACKAGES" />

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

大家一定要对应下,这些用不上的权限一定要写在强制移除权限,代码部分manifest.json文件,安卓很重要,优雅草央千澈提醒您,要是不想打包出来就报毒请一定excludePermissions下面加入强制移除(非常重要)

/* android打包配置 */
            "android" : {
                "permissions" : [
                    "<uses-feature android:name=\"android.hardware.camera\"></uses>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"></uses>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"></uses>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"></uses>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"></uses>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"></uses>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"></uses>",
                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"></uses>"
                ],
                "excludePermissions" : [
                    "<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"></uses>",
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"></uses>",
                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"></uses>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"></uses>",
                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"></uses>",
                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"></uses>",
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"></uses>",
                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"></uses>",
                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"></uses>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"></uses>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"></uses>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"></uses>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"></uses>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"></uses>",
                    "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"></uses>"
                ]
            },