# 蓝牙权限配置完整指南 ## 📋 权限配置概述 本应用已配置完整的蓝牙权限支持,包括: - **Android 11及以下**:需要位置权限进行蓝牙扫描 - **Android 12+**:使用新的蓝牙权限模型,无需位置权限 ## 🔧 AndroidManifest.xml 配置 ### 基础蓝牙权限 ```xml ``` ### 位置权限(仅Android 11及以下需要) ```xml ``` ### Android 12+ 特殊配置 ```xml ``` ## 📱 运行时权限请求 ### 动态权限检查 应用会根据Android版本自动确定所需权限: ```kotlin // Android 12+ 使用新的蓝牙权限 private val REQUIRED_PERMISSIONS: Array = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { arrayOf( Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT ) } else { // Android 11及以下需要位置权限 arrayOf( Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION ) } ``` ### 权限状态显示 应用会显示详细的权限状态: - ✅ 已授予权限 - ❌ 缺少权限 - 💡 权限请求提示 ## 🔍 权限检查流程 ### 1. 应用启动时检查 - 显示当前权限状态 - 提示用户授予必要权限 ### 2. 蓝牙操作前检查 - 自动检查所需权限 - 如果缺少权限,自动请求 - 显示权限请求结果 ### 3. 权限结果处理 - 显示已授予和被拒绝的权限 - 提供手动设置指导 - 根据权限状态决定是否继续操作 ## 🚨 常见权限问题 ### 1. 权限被拒绝 **症状**: 扫描无结果,显示"权限被拒绝" **解决方案**: 1. 进入应用设置 → 权限 2. 手动开启蓝牙和位置权限 3. 重启应用 ### 2. Android 12+ 权限问题 **症状**: 新设备上扫描失败 **解决方案**: 1. 确保使用新的蓝牙权限 2. 检查`neverForLocation`标志 3. 确认权限已正确授予 ### 3. 位置权限问题 **症状**: Android 11及以下设备扫描失败 **解决方案**: 1. 确保位置权限已授予 2. 检查GPS是否开启(某些厂商系统需要) 3. 重启蓝牙服务 ## 📊 权限状态检查 ### 应用内权限状态显示 ``` 权限状态: BLUETOOTH_SCAN: ✓ BLUETOOTH_CONNECT: ✓ ACCESS_FINE_LOCATION: ✓ ACCESS_COARSE_LOCATION: ✓ ``` ### 系统设置检查 1. **设置 → 应用 → 本应用 → 权限** 2. **设置 → 隐私 → 位置信息** 3. **设置 → 蓝牙** ## 🛠️ 调试权限问题 ### 1. 检查权限声明 ```bash # 确认AndroidManifest.xml中的权限声明正确 # 检查maxSdkVersion和usesPermissionFlags ``` ### 2. 检查运行时权限 ```kotlin // 在代码中检查权限状态 ContextCompat.checkSelfPermission(context, permission) ``` ### 3. 查看权限请求结果 ```kotlin // 在onRequestPermissionsResult中处理结果 override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) ``` ## 📝 权限配置清单 ### AndroidManifest.xml 检查项 - [ ] 基础蓝牙权限已声明 - [ ] Android 12+ 新权限已声明 - [ ] 位置权限限制到Android 11及以下 - [ ] `neverForLocation`标志已设置 - [ ] 蓝牙功能特性已声明 ### 代码权限检查项 - [ ] 动态权限检查已实现 - [ ] 权限请求已处理 - [ ] 权限结果已处理 - [ ] 权限状态显示已实现 ### 测试检查项 - [ ] Android 11及以下设备测试通过 - [ ] Android 12+ 设备测试通过 - [ ] 权限拒绝场景测试通过 - [ ] 权限授予后功能正常 ## 🎯 针对目标设备的权限检查 ### 目标设备: `A4:C3:37:86:9F:73` 1. **确认设备Android版本** 2. **检查对应权限是否已授予** 3. **验证权限配置是否正确** 4. **测试扫描功能是否正常** ## 🚀 下一步操作 1. **重新编译应用** 2. **在目标设备上测试权限** 3. **确认权限授予后扫描正常** 4. **如果仍有问题,检查设备特定设置**