即使连接失败,Android蓝牙也会配对设备

| 我正在编写针对API 7的蓝牙应用程序(我的设备是API 8-2.2)。当我尝试连接蓝牙插座时,弹出窗口提示用户与设备配对,但是有时连接超时或失败。在这些情况下,弹出窗口会消失而不显示任何内容,但设备会在蓝牙设置中显示为“已配对但未连接”。 如果我直接从Bluetooth设置连接到Bluetooth设备,则不会发生这种情况。如果用户实际单击“配对”,则设备仅显示“配对但未连接”。 这是创建连接的代码,看起来很简单:
    try {
        BluetoothDevice btDevice = _btAdapter.getRemoteDevice(address);
        _btAdapter.cancelDiscovery();
        sock = btDevice.createRfcommSocketToServiceRecord(SafConstants.BT_UUID);
        sock.connect();
    } catch (IOException e) {
        logger.error(\"socket connection failed\", e);
        if (sock != null) {
            try {sock.close();}
            catch (IOException e1) {}
        }
    }
这是Android问题还是我应该做其他事情?我搜索了API,以查看是否可以从绑定设备集中删除该设备(如果连接失败),但这似乎是不可能的。 编辑:我注意到的一件事是,当我尝试通过我的应用程序进行连接时,我在笔记本电脑上得到提示,它正在尝试在配对之前访问耳机服务。几秒钟后,我最终将在笔记本电脑上收到设备正在尝试配对的提示。 如果我通过蓝牙设置进行连接,则系统会提示您先配对设备,然后在配对成功后,系统会提示您设备正在尝试访问耳机服务。我不确定这是否有意义...     
已邀请:
您正在使用的UUID用于SPP(串行端口配置文件),并且作为耳机,需要蓝牙配置文件-A2DP(高级音频分发)。 当前,蓝牙堆栈的Android实现不支持蓝牙配置文件,而仅仅是实现。 为了在Android上实现蓝牙配置文件支持,有一个名为“ Sybase-iAnywhere-Blue-SDK-for-Android”的项目,该项目替代了Android的版本,并提供了到基础蓝牙配置文件和协议的所有接口。使用此工具,可以使用此SDK提供的BPP配置文件在Android手机上通过蓝牙进行打印。 有关更多详细信息,请参见下面的链接: 连结1:  http://www.sybase.com/detail?id=1064424 连结2: http://www.sybase.com/products/allproductsa-z/mobiledevicesdks/bluetoothsdks     

要回复问题请先登录注册