蓝牙主机未检测到传入连接

时间:2016-02-11 22:24:06

标签: android sockets bluetooth

我想使用蓝牙连接两部手机,其中一部是主机(侦听连接),另一部是启动连接。启动连接的代码运行良好,并成功连接到另一部手机。

但是主机卡在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的另一部手机(启动)测试此应用程序。这会导致连接问题吗?

1 个答案:

答案 0 :(得分:0)

我认为while循环应该是running = false一旦接受就可以了,并且在启动ConnectedThread时也会关闭acceptThread。

我会添加mmServerSocket != Null

的检查

或者,如果这没有帮助,请在此添加更多代码(例如,StartConnectedThread中的内容)