我希望使用 ScanFilter 来搜索一组蓝牙设备。我知道所有这些设备的地址都以 00:A0:50 开头,然后最后 6 位数字有所不同,因此所有地址都将类似于 00:A0:50:XX:XX:XX。我正在寻找一种使用方法设置设备地址查找地址以这 6 位数字开头的设备。这需要一个字符串作为输入。相关代码如下。
ScanFilter cypressFilter = new ScanFilter().Builder()
//we know that their mac address will always start with 00:A0:50
//so we should filter out any devices without that
.setDeviceAddress(/* Address string goes here */)
.build();
我想我需要为此使用正则表达式之类的东西,但我对 Java、Android 和正则表达式相当陌生,我不确定是否可以将正则表达式传递给这个函数?查看文档,我认为我需要一个 Pattern 或 Matcher 类来查找相关字符串。但是,我不确定这是否适用于需要特定字符串作为输入的特定方法。我很惊讶它不接受数组作为输入,我认为这将是比单个 MAC 地址更常见的用例。
是的,你可以使用regex & Pattern class
使用以下regex
匹配字符串地址
00:A0:50:([A-Fa-f0-9]{2}:){2}[A-Fa-f0-9]
看演示DEMO
我很惊讶它不接受数组作为输入,我认为
将是比单个 MAC 地址更常见的用例。
现在你可以使用循环(即 for 、 while.. 等)并匹配地址
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)