Android蓝牙ScanFilter部分字符串匹配

时间:2016-02-10 17:48:24

标签: java android regex bluetooth android-bluetooth

我希望使用ScanFilter搜索一组蓝牙设备。我知道所有这些设备的地址都以00:A0:50开头,然后最后6位数变化,所以所有地址看起来都像00:A0:50:XX:XX:XX。我正在寻找一种方法来使用setDeviceAddress来查找地址以这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地址更常见的用例。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用正则表达式& Pattern

使用以下CurrentTime匹配字符串地址

regex

参见演示DEMO

  

我很惊讶它不会将数组作为输入,我会这么认为   将是一个比单个MAC地址更常见的用例。

现在你可以使用循环(即for,while .. etc)并匹配地址