Android 设备上的 PhoneGap 蓝牙插件
Posted
技术标签:
【中文标题】Android 设备上的 PhoneGap 蓝牙插件【英文标题】:PhoneGap Bluetooth Plugin on Android device 【发布时间】:2013-11-28 06:20:42 【问题描述】:我一直在尝试为 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。
【问题讨论】:
只是为了确保在尝试解决之前,您是否设置了:我最近对相同的示例进行了试验,并且能够使其正常工作。然而,主要区别在于我使用了 Cordova CLI。
注意:您需要安装:Apache ANT、JAVA、Android SDK、GIT 命令行工具。前三个也需要在您的环境路径中正确设置。
这些是我执行的步骤:
-
下载 Node.JS(然后运行命令提示符)
npm install -g cordova
npm install -g coffee-script
cd C:\
cordova create bluetooth com.example.bluetooth bluetooth
cd bluetooth
cordova platform add android
cordova plugin add https://github.com/tanelih/phonegap-bluetooth-plugin.git
下载this
使用coffee --compile main.coffee
将main.coffee
转换为main.js
下载库文件(jQuery、bootstrap、下划线、主干)并将它们放在正确的目录中
将所有示例文档放在正确的目录中,并编辑索引以使用<script src="cordova.js">
而不是<script src="phonegap.js">
cordova build android
【讨论】:
谢谢,这对我有用。这些是您如何构建 apk 的非常详细的步骤,我使用 phonegap CLI 遵循了非常相似的步骤,但我不太确定为什么我的不工作。我能看到的唯一真正的区别是您编辑 phonegap.js 包含到 cordova.js 的部分 这里也有一些问题。我设法做所有事情,直到建造这该死的东西。一旦我将apk文件放在手机上并安装它,就没有boostrap布局,一切都被禁用,无法点击任何按钮。有什么想法吗? @Stargazer 我认为一切都被禁用的原因是因为按钮默认设置为禁用。它们仅在一切正常后才启用。似乎某些地方无法正常工作,因此按钮未启用。您可以尝试手动从按钮中删除禁用,但我认为这不会有帮助,因为问题仍然存在。 @Yorimitsu,我确实设法让它发挥作用。我正打算来这里说明这一点。事实上,这与我的应用程序上的插件未正确配置为“plugman 友好”插件以及 CDN 的其他一些问题有关。现在我正在努力用它来读取二进制数据……但那是另一回事了。 @Stargazer 我和你有同样的问题(按钮被禁用)。你能告诉我你是怎么解决你的问题的吗?我是移动编程新手,任何有关此的链接都会非常有用。【参考方案2】:也许this的文章能帮上忙?与您的问题相比,这是与其他特定的蓝牙连接更多,但也许它可以提供帮助。我过去使用过它,它与 PhoneGap 3.0 配合得很好,唯一的缺点是 BlackBerry 不再兼容。
【讨论】:
这个例子是我使用的。这是在我的问题开始时说明的。以上是关于Android 设备上的 PhoneGap 蓝牙插件的主要内容,如果未能解决你的问题,请参考以下文章