在我的应用程序中捕获特定MAC地址失败



我有一个使用蓝牙控制家用设备的应用程序,我的应用程序将在其中连接,并需要与我的HC-05蓝牙模块配对,但问题是当我编码了一些东西来捕获其他MAC地址时,除了20:13: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;

我已经尝试了一些其他的可能性,但这个功能还是失败了。无论如何,这是我第一次创建安卓应用程序。任何帮助都将不胜感激。非常感谢。

address == HC05

这是java中的引用比较。您想要字符串比较。

请改用address.equals(HC05)。(类似地,address != HC05应该是!address.equals(HC05),或者在这种特定情况下,您可以将else if替换为else)

供参考:Java比较两个字符串的==是否为false?

最新更新