Android 安卓蓝牙;“服务发现失败”;

Android 安卓蓝牙;“服务发现失败”;,android,bluetooth,Android,Bluetooth,虽然关于这个话题已经写了很多,但我仍然找不到解决我的具体问题的方法: 我正在尝试用一个简单的蓝牙设备连接Sasmsung Galaxy SIII。当我使用手机的蓝牙设置(无需PIN)将这两个配对时,它就可以工作了。但如果设备之前未手动配对,我会收到以下异常: java.io.IOException: Service discovery failed at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:

虽然关于这个话题已经写了很多,但我仍然找不到解决我的具体问题的方法:

我正在尝试用一个简单的蓝牙设备连接Sasmsung Galaxy SIII。当我使用手机的蓝牙设置(无需PIN)将这两个配对时,它就可以工作了。但如果设备之前未手动配对,我会收到以下异常:

java.io.IOException: Service discovery failed
at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:462)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:240)
at com.concept.proiv.BluetoothConnection$1.run(BluetoothConnection.java:84)
at java.lang.Thread.run(Thread.java:856)
相关代码:

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) ...
if (!mBluetoothAdapter.isEnabled()) ...

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice("00:0A:3A:2F:7C:1A");
try
{
    btSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
}
catch (IOException e) ... - WORKING
mBluetoothAdapter.cancelDiscovery();
try
{
    btSocket.connect(); <-- FAILED HERE
}
catch (IOException e) 
{
    e.printStackTrace(); //java.io.IOException: Service discovery failed
}
mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
如果(mBluetoothAdapter==null)。。。
如果(!mBluetoothAdapter.isEnabled())。。。
BluetoothDevice=mBluetoothAdapter.getRemoteDevice(“00:0A:3A:2F:7C:1A”);
尝试
{
btSocket=device.createInsurerCommsocketToServiceRecord(我的UUID);
}
捕获(IOE异常)…-工作
mBluetoothAdapter.cancelDiscovery();
尝试
{

btSocket.connect();通常的工作方式:启动发现,如果找到设备,则启动配对(如果尚未配对),如果配对成功,连接到设备-完成。你是否在代码中完成配对过程?我建议你看看这个:我确实读过android文档,还有很多关于这个问题的帖子。我们找到的唯一解决方案是在设备上设置BT密码