在我的应用程序中,陷阱因特定MAC地址而失败

时间:2014-01-13 17:47:28

标签: java bluetooth comparison-operators

我正在申请使用蓝牙控制家用设备,其中我的应用程序将连接并需要与我的HC-05蓝牙模块配对,但问题是当我编码某些东西以捕获除20:13之外的其他MAC地址: 06:19:34:00这是HC-05蓝牙模块的MAC地址,它会捕获所有蓝牙设备,包括我的HC-05,其中我特意在我的代码中包含其MAC地址。

所以这是我捕获mac地址的一部分:

case REQUEST_DEVICE_CONNECT:
            String HC05 = "4C:0F:6E:0F:12:F4";
                // When DeviceList Activity returns with a device to connect
                if (resultCode == Activity.RESULT_OK) {
                    // Get the device MAC address
                    //String address = data.getExtras().getString(DeviceList.EXTRA_DEVICE_MAC_ADDRESS);
                    String address = new String(data.getExtras().getString(DeviceList.EXTRA_DEVICE_MAC_ADDRESS));
                    if (address == HC05)
                    {
                        // Get the BLuetoothDevice object
                        BluetoothDevice device = BTAdapter.getRemoteDevice(address);
                        // Attempt to connect to the device
                        commandService.connect(device);
                    }
                    else if (address != HC05)
                    {
                        Toast.makeText(this, "This device is not for JavaC101 Application. Please connect to HC-05 device.", Toast.LENGTH_LONG).show();
                    }
                }
                break;

我已经尝试了其他一些可能性,但我仍然对此功能失败了。这是我第一次创建一个Android应用程序。任何帮助将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

address == HC05

这是java中的参考比较。你想要字符串比较。

请尝试使用address.equals(HC05)。 (同样,address != HC05应为!address.equals(HC05),或者在此特定情况下,您可以仅使用else if替换else

供参考:Java comparison with == of two strings is false?