是否可以使用android-beacon-library更改didExitRegion时间

时间:2015-05-25 09:12:36

标签: ibeacon altbeacon

我正在使用iBeacons并使用AltBeacon库。

我会问是否有可能改变看到最后一个信号和调用didExitRegion之间的时间。

我发现公共静态长INSIDE_EXPIRATION_MILLIS = 100001,所以我假设时间是10秒。这是对的吗?

不幸的是我没有找到任何方法来设置另一个值。

在特定时间内没有看到信标时,有没有其他方法显示我? (3-5秒)

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

是的,您在上次看到信标10秒后触发Android Beacon Library区域出口是正确的,并且您引用的java常量是唯一可以配置的方式。更改此选项意味着重新编译库的源。

在运行时使其可配置是合理的新功能请求。如果您有兴趣创建一个,请在此处执行:https://github.com/AltBeacon/android-beacon-library/issues/new

此外,如果您有技能,我们欢迎您自己进行更改并在GitHub上提交拉取请求。这就是最好的开源软件的构建方式!

在添加此功能之前,您可以通过在didExitRegion回调中添加计时器来延长退出时间。缩短它是比较棘手的,但你可以在didRangeBeaconsInRegion回调中使用一个计时器,如果你在它关闭之前得到另一个回调就取消计时器。

关于缩短时间的一个注意事项:并非所有信标数据包都会被移动设备接收,并且某些信标不会频繁传输。 iOS上的默认退出时间仅为3秒,这通常会导致间歇性的退出/进入事件,当缓慢的广告信标(仅以1 Hz传输的信标)位于连续错过三次传输的电话周围时。

答案 1 :(得分:1)

对于新读者:

var json : [String: AnyObject]? // Property
do {
    let jsonData1 = (try? Data(contentsOf: URL(string: "\(label2)")!)) as Data!
    json = try JSONSerialization.jsonObject(with: jsonData1, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: AnyObject]
} 
catch let error as NSError {
    let myAlert = UIAlertController(title: "Alert", message: error?.localizedDescription, preferredStyle: .alert) //you can change message to whatever you want.
    let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
    myAlert.addAction(okAction)
    self.present(myAlert, animated: true, completion: nil)

    return
}