Android设备上的PhoneGap蓝牙插件

时间:2013-11-28 06:20:42

标签: javascript cordova bluetooth phonegap-plugins

我一直试图为PhoneGap工作获得一个蓝牙插件,但我似乎无法弄清楚我哪里出错了。首先,我的测试设备是Galaxy S3(GT-19305T),应用程序是使用PhoneGap CLI构建的。

我尝试使用的插件here可以找到示例here

我尝试了一个似乎没有做任何事情的例子。

然后我做了基本的,尝试使用PhoneGap给出的示例插件。我可以很容易地完成所有这些工作。在我的示例中,我使用的是基本设备信息插件。

以下是一些示例代码:

使用Javascript:

<script type="text/javascript" charset="utf-8">
    // Wait for device API libraries to load
    document.addEventListener("deviceready", onDeviceReady, false);
    // device APIs are available
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');
        element.innerHTML = 'Device Model: '    + device.model    + '<br />' +
                            'Device Cordova: '  + device.cordova  + '<br />' +
                            'Device Platform: ' + device.platform + '<br />' +
                            'Device UUID: '     + device.uuid     + '<br />' +
                            'Device Version: '  + device.version  + '<br />';
        var btstatus = document.getElementById('status');
        btstatus.innerHTML = "Getting bluetooth information";

        window.bluetooth.isEnabled(isEnabledSuccess, isEnabledError);
    }

    function checkBluetoothStatus() {
        var btstatus = document.getElementById('status');
        btstatus.innerHTML = "Checking bluetooth information";
        window.bluetooth.isEnabled(isEnabledSuccess, isEnabledError);
    }

    function isEnabledSuccess(isEnabled){
       var btstatus = document.getElementById('status');
       if(isEnabled){
         btstatus.innerHTML = "Enabled";
       }else{
         btstatus.innerHTML = "Disabled";
       }
    }

    function isEnabledError(error){
       var btstatus = document.getElementById('status');
       btstatus.innerHTML = "Cannot determine Bluetooth status: " + error.message;
    }

    function enableBluetooth(){
        var btstatus = document.getElementById('status');
        btstatus.innerHTML = "Attempting to turn bluetooth on";
        window.bluetooth.enable(bluetoothTestSucces, bluetoothTestFail);
    }
</script>

HTML

  <body>
    <p id="deviceProperties">Loading device properties...</p>
    <br />
    <button onclick="enableBluetooth();">Enable Bluetooth</button>
    <br />
    <button onclick="checkBluetoothStatus();">Check Bluetooth Status</button>
    <br />
    <p id="status">Loading bluetooth information...</p>
  </body>

所以基本上我试图让插件返回当前的蓝牙连接信息,或者点击“启用蓝牙”按钮启用蓝牙。

遗憾的是到目前为止还没有任何工作,正如我之前所说,我不确定我哪里出错了。

我尝试过手动应用它并使用CLI。

2 个答案:

答案 0 :(得分:12)

我最近尝试过相同的示例,并且能够让它正常运行。然而,主要区别在于我使用了Cordova CLI

注意:您需要安装:Apache ANT,JAVA,Android SDK,GIT命令行工具。前三个也需要在您的环境路径中正确设置。

这些是我执行的步骤:

  1. 下载Node.JS(然后运行命令提示符)
  2. npm install -g cordova
  3. npm install -g coffee-script
  4. cd C:\
  5. cordova create bluetooth com.example.bluetooth bluetooth
  6. cd bluetooth
  7. cordova platform add android
  8. cordova plugin add https://github.com/tanelih/phonegap-bluetooth-plugin.git
  9. 下载this
  10. 使用main.coffee
  11. main.js隐藏到coffee --compile main.coffee
  12. 下载库文件(jQuery,bootstrap,下划线,主干)并将它们放在正确的目录中
  13. 将所有示例文档放在正确的目录中,并编辑索引以使<script src="cordova.js">代替<script src="phonegap.js">
  14. cordova build android

答案 1 :(得分:0)

也许this文章有帮助吗?这是与其他特定的蓝牙连接然后你的问题,但也许它可以帮助。我过去使用它,它与PhoneGap 3.0一起使用,唯一的缺点是黑莓不再兼容。