http://ask.dcloud.net.cn/article/643?item_id=5995 这是网站上关于蓝牙连接打印机打印的代码。
我用 其中 连接打印机那段代码修改成连接设备。mac_address 是要连接的手机的mac地址,
两个手机都进行配对过了,但是下边的代码调试时候显示连接失败。错误信息在 后面。
function connectPhone(mac_address) {
if (!mac_address) {
alert("mac 地址缺失!")
return;
}
main = plus.android.runtimeMainActivity();
var Settings= plus.android.importClass("android.provider.Settings");
console.log(Settings.Secure.getString(main.getContentResolver(),Settings.Secure.ANDROID_ID));
BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
UUID = plus.android.importClass("java.util.UUID");
uuid = UUID.fromString("00001101-0000-1000-8004-00805F9B34FB");
BAdapter = BluetoothAdapter.getDefaultAdapter();
device = BAdapter.getRemoteDevice(mac_address);
plus.android.importClass(device);
bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
plus.android.importClass(bluetoothSocket);
if (!bluetoothSocket.isConnected()) {
console.log('检测到设备未连接,尝试连接....');
bluetoothSocket.connect();
}
console.log('设备已连接');
// if (bluetoothSocket.isConnected()) {
// var outputStream = bluetoothSocket.getOutputStream();
// plus.android.importClass(outputStream);
// var string = "打印测试\r\n";
// var bytes = plus.android.invoke(string, 'getBytes', 'gbk');
// outputStream.write(bytes);
// outputStream.flush();
// device = null //这里关键
// bluetoothSocket.close(); //必须关闭蓝牙连接否则意外断开的话打印错误
//
// }
}
错误信息:
检测到设备未连接,尝试连接.... at index.html:178
Uncaught java.io.IOException: read failed, socket might closed or timeout, read ret: -1;at android.bluetooth.BluetoothSocket.connect at index.html:1
4 个回复
子衿科技 - 一个学生编程爱好者
我怀疑是不支持4.0的问题,之前做蓝牙小车的时候试着连接手机也不行
1***@qq.com - 90入门小白
解决了吗
lee60
手机现在基本都是蓝牙4.0的,你这个方法是4.0以下的连接方式。我也急需4.0的连接方式,再弄不好就要弃用Dcloud了
t***@qq.com
我发现一个问题,手机连接手机 ,系统的蓝牙配对了,但是也连接不了, 点击连接后就断开,我想是因为手机和手机蓝牙根本不支持实时连接,但是配对后可以发送文件。你试试手机连接 物联网 的 蓝牙模块 试试吧