我希望我的Android应用程序在手机进入特定建筑物或特定区域时做出反应。我可以使用普通的接近警报,但我想知道是否可以定期检查移动电话范围内的特定BSSID(例如每30秒,以保持足够的响应)。
这是个好主意吗?或者只是正常的接近警报就足够了?这已经在某处实现了吗?
我主要担心电池消耗和响应能力。 希望很清楚。提前谢谢。
答案 0 :(得分:1)
我有一个使用基于BSSID的功能的应用程序,所以它是可能的。您可以为WifiManager.SCAN_RESULTS_AVAILABLE_ACTION创建BroadcastReceiver。电池消耗是一个很大的问题,因为这个接收器的调用次数比你想要的要多。
您最好的选择是创建一个长期运行的后台服务,定期注册广播接收器,(可选)调用WifiManager.scan(因为数据很可能会进入)然后取消注册。
你可能会认为60或90秒足够好,电池会更好。
看一下应用https://play.google.com/store/apps/details?id=com.heleron.wifiroamingfix我会说这是一个电池猪的例子。
还要考虑SDK的更高级别的位置功能利用了wifi,可能更适合您的应用类型。搜索bssids是一种特定于wifi的解决方案,如果你的问题与wifi有关,那就很好了。