我想使用蓝牙连接两部手机,其中一部是主机(侦听连接),另一部是启动连接。启动连接的代码运行良好,并成功连接到另一部手机。
但是主机卡在socket.accept()上,因为它没有检测到连接。两个设备上的UUID是相同的,所以我真的不知道这个问题是什么。
这是主持人的AcceptThread:
//fibonacci numbers
//0,1,1,2,3,5,8,13,21,34,55,89
//print out the first ten fibonacci numbers
'use strict';
function printFobonacciNumbers(n) {
var firstNumber = 0,
secondNumber = 1,
fibNumbers = [];
if (n <= 0) {
return fibNumbers;
}
if (n === 1) {
return fibNumbers.push(firstNumber);
}
//if we are here,we should have at least two numbers in the array
fibNumbers[0] = firstNumber;
fibNumbers[1] = secondNumber;
for (var i = 2; i <= n; i++) {
fibNumbers[i] = fibNumbers[(i - 1)] + fibNumbers[(i - 2)];
}
return fibNumbers;
}
var result = printFobonacciNumbers(10);
if (result) {
for (var i = 0; i < result.length; i++) {
console.log(result[i]);
}
}
我可以向您保证两台设备使用的UUID是相同的:00001101-0000-1000-8000-00805f9b34fb
此外,我正在使用API级别低于15(作为主机)的旧手机和使用API级别17的另一部手机(启动)测试此应用程序。这会导致连接问题吗?
答案 0 :(得分:0)
我认为while循环应该是running = false
一旦接受就可以了,并且在启动ConnectedThread时也会关闭acceptThread。
我会添加mmServerSocket != Null
或者,如果这没有帮助,请在此添加更多代码(例如,StartConnectedThread中的内容)