我的代码片段:我尝试过altbeacon gradle . 我按照以下代码声明了Region .
我在Application类的onCreate方法中写了这一行 . Region region = new Region(“all beacon”,null,null,null);
我可以在“didRangeBeaconsInRegion”中获得Beacon的主要,次要和uuid .
Problem : 我没有将didEnterRegion()和didExitRegion()方法中的beacon识别为获取major,minor和uuid的空值 .
我该如何解决这个问题?
1 回答
没有什么是错的,这就是信标监控的工作原理 . 监视时,如果检测到与您的Region定义的通配符模式匹配的任何信标,则会收到通知 . 此通知告诉您检测到匹配的信标,并提供对正在监视的Region对象的引用 .
在所示的示例中,定义的Region对于三个信标标识符中的每一个都具有null,这意味着它将匹配任何信标 . 因此,当检测到任何信标时,它仅提供单个回调,并且不会告诉您匹配的标识符 .
您有两种方法可以访问标识符:
如果您只关心几个信标,则可以监视多个显式区域,例如:
Region region1 = new Region("first beacon", "2F234454-CF6D-4A0F- ADF2-F4911BA9FFA6", "1", " 2");
这将在回调中为您提供一个Region对象,并设置所有标识符 .使用测距API,每秒使用一个标识符与定义区域匹配的所有信标列表进行回调 .
下面是选项1的完整Activity实现 . 运行它时,您将在LogCat中看到以下内容:
请注意,第一个区域条目将发送所有空标识符,因为该活动还监视所有空区域 .