【问题标题】:Issue with the cordova plugin ble-central科尔多瓦插件 ble-central 的问题
【发布时间】:2020-08-20 09:09:59
【问题描述】:

我是 Ionic 框架领域的新手,我正在使用蓝牙低功耗(cordova 插件 ble-central)开发一个 Ionic 应用程序。直到两天前,一切都运行良好。现在,scan() 函数不再起作用了。该函数被正确调用,并且允许蓝牙和位置权限。我没有对解释此问题的代码进行任何更改。我还尝试卸载/安装该应用程序,重新启动我的 android 手机并使用另一部手机。没有任何效果。

下面是我的清单截图:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-feature android:name="android.hardware.location.gps" />

和蓝牙代码:

this.ble.scan([], 5).subscribe( 
              device => 
                  this.onDeviceDiscovered(device),// Never reached
              error => { 
                  this.scanError(error).catch(e => console.log('scan error ' + e)); // Never reached
              },
              () => console.log('completed')); // Never reached


          // Debug
          setTimeout(this.setStatus.bind(this), 6000, 'Scan completed');

函数setStatus用于调试。

我已经阅读并尝试了很多东西,但没有任何效果。 感谢您的帮助!

PS:当然,当我使用我的应用程序时,蓝牙和 gps 是激活的。

【问题讨论】:

    标签: javascript android ionic-framework bluetooth bluetooth-lowenergy


    【解决方案1】:

    从 android api 29 开始,使用 ACCESS_FINE_LOCATION 权限而不是 ACCESS_COARSE_LOCATION。 cordova-plugin-ble-central 的维护者尚未接受更正此问题的拉取请求。

    我对我的 fork 进行了必要的更改,现在它在 android 10、api 29 上运行良好...

    也许你可以通过删除旧的来使用它:

    ionic cordova plugin rm cordova-plugin-ble-central
    

    并添加我的叉子:

    ionic cordova plugin add git+https://github.com/dslima90/cordova-plugin-ble-central.git
    

    【讨论】:

    • Don 已在 1.3.1 版本的 git repo 中对其进行了更新。两者都很棒。完美运行。
    猜你喜欢
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多