2017-09-25 72 views
0

美好的一天。对不起,我的英语不好。是否提示有机会定义不在UUID上的双向通信区域,并且是双向通信的一部分。例如,我们有2个区域:IBeacon。定制过滤区域

1 - UUID = 57547265-7261-772e-636f-6c0054000000

2-只有完整部分(最有可能的,这是第四最后一组) - 6c001137e000

我可以在我的方法中只为最后一组UUID指定一个过滤器吗?

例如:

List<string> listUuids =new List<string>() 
      { "57547265-7261-772e-636f-6c0054000000" , "6c001137e000" }; 

    for (int i = 0; i <listUuids.Count; i ++) 
     { 
     var uuid = Identifier.Parse (listUuids [i]); 
     var region = new Region ("R" + i, uuid, null, null); 
     beaconManager.StartRangingBeaconsInRegion (region); 
     } 

我真的很感激任何答案! 最好的问候!

回答

0

您可以使用自定义的信标解析器来做到这一点。像这样:

BeaconManager.GetBeaconParsers().clear(); BeaconMannager.GetBeaconParsers().add(new Beacon parser().setBeaconLayout("m:2-3=0215,i:14-19,i:4-13,i:20-21,i:22-23,p:24-24"); var region = new Region("partial UUID region", Identifier.parse("0x6c001137e000"), null, null)

上述定制解析器定义标识符一个iBeacon显示包。第一个标识符是UUID的最后6个字节。第二个标识符是UUID的前10个字节。第三和第四个标识符分别是主要和次要。

使用上面定义的区域将匹配与UUID指定的最后6个字节匹配的任何信标。

+0

谢谢!我会尝试 – OlegS