uni-app 安卓端魅族手机使用HBuilder X 3.98.2023112011-alpha打正式包安装后蓝牙连接设备报错找不到设备no device Mac地址正确

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

uni-app 安卓端魅族手机使用HBuilder X 3.98.2023112011-alpha打正式包安装后蓝牙连接设备报错找不到设备no device Mac地址正确

开发环境 版本号 项目创建方式
Windows window11 -

操作步骤:

  • 发行-》原生App云打包-》正式包 用魅族手机连接设备

预期结果:

  • 可以正常连接设备

实际结果:

  • createBLEConnection:fail no device

bug描述:

  • 我使用标准基座运行到魅族手机,然后用蓝牙是可以连接设备的,没有报什么提示。
  • 但是当我发行-》原生App云打包-》正式包 魅族手机连接设备就报了createBLEConnection:fail no device

1 回复

在使用 uni-app 开发并打包安卓应用时,遇到蓝牙连接设备报错 no device 的问题,可能涉及多个方面的原因。以下是一些可能的排查和解决方案:


1. 检查蓝牙权限

确保在 manifest.json 中正确配置了蓝牙权限:

{
  "permission": {
    "android.permission.BLUETOOTH": [],
    "android.permission.BLUETOOTH_ADMIN": [],
    "android.permission.ACCESS_FINE_LOCATION": []
  }
}
  • 注意:在 Android 6.0 及以上版本,访问蓝牙设备需要 ACCESS_FINE_LOCATION 权限。

2. 检查设备蓝牙状态

在代码中确保蓝牙已开启,并正确初始化:

uni.openBluetoothAdapter({
  success(res) {
    console.log('蓝牙适配器初始化成功', res);
  },
  fail(err) {
    console.error('蓝牙适配器初始化失败', err);
  }
});

如果蓝牙未开启或初始化失败,会导致无法扫描到设备。


3. 检查设备兼容性

魅族手机可能对某些蓝牙设备的支持存在问题。可以尝试以下方法:

  • 测试其他安卓设备,确认是否是魅族手机特有的问题。
  • 检查蓝牙设备的兼容性,确保设备支持低功耗蓝牙(BLE)。

4. 检查 MAC 地址格式

确保传入的 MAC 地址格式正确。MAC 地址通常为 XX:XX:XX:XX:XX:XXXX-XX-XX-XX-XX-XX 格式。如果格式不正确,可能导致无法连接设备。


5. 检查扫描和连接逻辑

确保扫描和连接逻辑正确:

uni.startBluetoothDevicesDiscovery({
  success(res) {
    console.log('开始扫描设备', res);
  },
  fail(err) {
    console.error('扫描设备失败', err);
  }
});

uni.onBluetoothDeviceFound((res) => {
  console.log('发现设备', res.devices);
  // 根据 MAC 地址匹配设备
  const targetDevice = res.devices.find(device => device.deviceId === 'your-mac-address');
  if (targetDevice) {
    uni.createBLEConnection({
      deviceId: targetDevice.deviceId,
      success(res) {
        console.log('连接成功', res);
      },
      fail(err) {
        console.error('连接失败', err);
      }
    });
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!