我在使用64位JVM的Linux x64中使用Bluecove(bluecove和bluecove-gpl 2.1.1 SNAPSHOT库)在配对过程中尝试对BT设备进行身份验证时遇到麻烦。尽管发现似乎很好,但是在尝试使用已知PIN进行身份验证时,恐怕绝不会,因为绝不会实现此功能。

这是实际进行配对的方法:

public Boolean pairingDevice()
{
    //check if authenticated already
    if (remoteDevice.isAuthenticated()){
        return true;
    }
    else{

        LOG.info("--> Pairing device");

        try {
            PIN = "111111";
            boolean paired = RemoteDeviceHelper.authenticate(remoteDevice, PIN);
            //LOG.info("Pair with " + remoteDevice.getFriendlyName(true) + (paired ? " succesfull" : " failed"));
            devicePaired = paired;
            if (devicePaired)
                LOG.info("--> Pairing successful with device " + remoteDevice.getBluetoothAddress());
            else
                LOG.info("--> Pairing unsuccessful with device " + remoteDevice.getBluetoothAddress());
        }
        catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            LOG.info("--> Pairing unsuccessful with device " + remoteDevice.getBluetoothAddress());
            devicePaired = false;
        }
        LOG.info("--> Pairing device Finish");
        return devicePaired;
    }
}

现在拨打
 boolean paired = RemoteDeviceHelper.authenticate(remoteDevice, PIN);

以对BluetoothStackBlueZ.authenticateRemoteDevice(长地址,字符串密码)的调用结束:
    /*
 * (non-Javadoc)
 *
 * @see com.intel.bluetooth.BluetoothStack#authenticateRemoteDevice(long, java.lang.String)
 */
public boolean authenticateRemoteDevice(long address, String passkey) throws IOException {
    return false;
}

如您所见,这始终返回FALSE,这将导致未定义的行为。问题是...我该如何使用Bluecove在Linux中对remoteDevice进行身份验证?

有Bluecove的替代品吗?我听说过相同的代码可以在Windows中使用,但是由于这个原因,我真的不想切换到Windows。

提前致谢,
亚历克斯

最佳答案

对于其他遇到相同问题的人,我已经在多个平台上尝试过此代码:Linux x64,Windows 7 64位,并且从未使用过。

我做了全新的Ubuntu 12.04 32位安装,已安装:

libbluetooth-dev和bluez-utils

完美的工作...所以我的答案是...如果您需要使用Bluecove,请使用32位。不管是什么原因在我的Linux-Windows 64计算机上都不起作用...我不知道,但是不能花更多的时间在我的Linux-Windows 64计算机上。

关于java - Bluecove中的身份验证-Linux x64无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12896056/

10-09 06:19