当前位置: 首页 > 知识库问答 >
问题:

Android蓝牙ScanFilter部分字符串匹配

齐坚成
2023-03-14

我希望使用扫描过滤器来搜索一组蓝牙设备。我知道所有这些设备的地址都以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和regex相当陌生,我不确定我是否可以将正则表达式传递给这个函数?查看文档,我想我需要一个模式或匹配器类来查找相关的字符串。但是,我不确定这是否适用于需要特定字符串作为输入的特定方法。我很惊讶它不接受一个数组作为输入,我认为这是一个比单个MAC地址更常见的用例。

共有1个答案

夏建弼
2023-03-14

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

使用下面的< code>regex来匹配字符串地址

00:A0:50:([A-Fa-f0-9]{2}:){2}[A-Fa-f0-9]

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

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

 类似资料:
  • 问题内容: 我正在寻找使用ScanFilter搜索一组蓝牙设备。我知道所有这些设备的地址都以00:A0:50开头,然后最后6位数字有所不同,因此所有地址看起来都像00:A0:50:XX:XX:XX。我正在寻找一种使用setDeviceAddress来查找地址以那6位数字开头的设备的方法。这将字符串作为输入。相关代码如下。 我想我需要为此使用诸如正则表达式之类的东西,但是我对Java,Android

  • 我在创建正则表达式以匹配这些内置组时需要一些帮助: 我尝试了以下匹配模式,但它给了我一些错误: 错误代码: 这是预览:https://regex101.com/r/WKal3Y/1

  • 我正在处理一个关于codingbat的问题,这个问题说:给定一个字符串和第二个“单词”字符串,我们会说这个单词匹配字符串,如果它出现在字符串的前面,除了它的第一个字符不需要完全匹配...在匹配时,返回字符串的前面,或以其他方式返回空字符串。所以,所以用字符串“河马”,“嗨”这个词返回“嗨”,“xip”返回“臀部”。单词长度至少为1。我不能解决它,但在网上找到了一个解决方案,代码如下所示。代码工作,

  • 嗨,我要开发一个应用程序,所以我有一个设备(服务器)与3个客户端。我做了所有的验证,打开蓝牙,找到设备,所有的工作都很好。但当我要连接一个设备时,我不知道会发生什么。 我正在使用下一个代码,当我单击一个我想连接它的设备时。我只有我的应用程序在母设备中。 这里我有一个问题,如果它没有配对会发生什么?如果我尝试连接,它会自动配对吗? 我的UUID是:“00001101-0000-1000-8000-0

  • 我必须为Android平板电脑开发一个应用程序,要求将文件打印到蓝牙打印机上。 通过蓝牙打印是我应用程序最重要的功能之一。 我尝试了这个项目和这个项目。 它不工作,也不报告任何错误-不要打印。 蓝牙打印机有什么建议吗?

  • 问题内容: 我有一个名为的字符串,其形式像这样 。 我想使用:分隔符。 这样一来,单词将被拆分成自己的字符串,并将成为另一个字符串。 然后我只想使用2种不同的字符串来显示该字符串。 解决这个问题的最佳方法是什么? 问题答案: 你可能要删除第二个字符串的空格: 如果要用特殊字符(例如dot(。))分割字符串,则应在点之前使用转义字符\ 例: 还有其他方法可以做到这一点。例如,你可以使用类(来自):