uni-app oppo手机a59s不能读取到蓝牙、定位权限,App的授权情况也读取不到

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app oppo手机a59s不能读取到蓝牙、定位权限,App的授权情况也读取不到

开发环境 版本号 项目创建方式
Windows window10 HBuilderX

操作步骤:

uni.getSystemSetting()  
uni.getAppAuthorizeSetting()
使用oppo手机开发,调用上面两个接口,会发现什么都没有

预期结果:

会有权限的情况,开启或者未开启

实际结果:

什么都没

bug描述:

uni.getSystemSetting()  
uni.getAppAuthorizeSetting()  
想要通过上面两个api读取手机权限问题,就是读取不到,其他的手机没遇到这种情况

2 回复

oppo reno 9也是这样,搜不到蓝牙


uni-app 开发中,如果遇到 OPPO 手机(如 A59s)无法读取蓝牙、定位权限,或者无法读取 App 的授权情况,可能是由于以下原因导致的。以下是一些排查和解决方法:


1. 检查权限配置

确保在 manifest.json 中正确配置了所需的权限:

{
  "permission": {
    "scope.userLocation": {
      "desc": "需要获取您的位置信息"
    },
    "bluetooth": {
      "desc": "需要访问蓝牙功能"
    }
  }
}

2. 动态申请权限

在 OPPO 等 Android 设备上,部分权限需要动态申请。可以在代码中调用 uni.authorizeuni.getSetting 来检查和申请权限:

// 检查权限
uni.getSetting({
  success(res) {
    if (!res.authSetting['scope.userLocation']) {
      // 申请定位权限
      uni.authorize({
        scope: 'scope.userLocation',
        success() {
          console.log('定位权限已授权');
        },
        fail() {
          console.log('定位权限未授权');
        }
      });
    }
  }
});

3. 检查 OPPO 系统的权限管理

OPPO 手机的系统权限管理较为严格,可能会默认禁止某些权限。可以引导用户手动开启权限:

  • 打开手机 设置 -> 应用管理 -> 找到你的 App -> 权限管理 -> 开启 定位蓝牙 权限。

4. 检查蓝牙和定位功能是否开启

确保手机的蓝牙和定位功能已开启:

  • 打开手机 设置 -> 蓝牙 -> 开启蓝牙。
  • 打开手机 设置 -> 定位服务 -> 开启定位。

5. 检查 OPPO 系统的省电模式

OPPO 的省电模式可能会限制后台权限。可以关闭省电模式:

  • 打开手机 设置 -> 电池 -> 关闭 省电模式

6. 检查 uni-app 的 API 兼容性

确保使用的 uni-app API 在 OPPO 设备上兼容。例如:

  • 使用 uni.getBluetoothAdapterState 检查蓝牙状态。
  • 使用 uni.getLocation 检查定位功能。

7. 调试日志

在代码中添加调试日志,检查权限申请和回调是否正常:

uni.getSetting({
  success(res) {
    console.log('当前权限设置:', res.authSetting);
  },
  fail(err) {
    console.error('获取权限设置失败:', err);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!