我正在申请使用蓝牙控制家用设备,其中我的应用程序将连接并需要与我的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应用程序。任何帮助将非常感激。谢谢。
答案 0 :(得分:0)
address == HC05
这是java中的参考比较。你想要字符串比较。
请尝试使用address.equals(HC05)
。 (同样,address != HC05
应为!address.equals(HC05)
,或者在此特定情况下,您可以仅使用else if
替换else