我正在使用iBeacons并使用AltBeacon库。
我会问是否有可能改变看到最后一个信号和调用didExitRegion之间的时间。
我发现公共静态长INSIDE_EXPIRATION_MILLIS = 100001,所以我假设时间是10秒。这是对的吗?
不幸的是我没有找到任何方法来设置另一个值。
在特定时间内没有看到信标时,有没有其他方法显示我? (3-5秒)
任何建议都将不胜感激。
答案 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
}