求问一个 Android (iOS) App 检测用户是否靠近某个 BLE 设备的最佳实践? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX    Android

求问一个 Android (iOS) App 检测用户是否靠近某个 BLE 设备的最佳实践?

  •  
  •   liyafe1997 2024-04-08 20:49:44 +08:00 8369 次点击
    这是一个创建于 583 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先考虑 Android 平台

    大概用来做类似于室内定位,当设备靠近某个 BLE 设备时执行相应动作(比如发出通知等)

    要求能长时间后台运行,对后台友好并且不过多消耗电量/资源,所以基于 foreground service 的方案不考虑。(国产安卓杀后台的情况不考虑,不在本贴讨论范围内,只考虑原生安卓的行为,即原生安装默认电池优化的情况下能正常运行即可)。

    用 Geofence 来触发不考虑,范围太大。

    有什么好的解决方案呢?用 JobScheduler 定时触发 BLE Scan ?

    或是把外部 BLE 设备作 Central ,安卓 App 做 peripheral ?然后外部 BLE 设备不断地尝试连接安卓 App 的 BLE peripheral ?我搜了下,安卓 App 也可以实现 peripheral ,但是似乎也挺依赖后台机制,网上给的方案都是做成 foreground service 的。

    或是外部 BLE 设备发送 ibeacon?网上逛了下,似乎只有 iOS 能被动的触发(这里似乎有个完美方案: https://developer.estimote.com/ibeacon/tutorial/part-2-background-monitoring/ ),安卓端似乎还是要主动执行 BLE Scan ?那么问题又回到了上面,如何/何时在后台触发 BLE Scan 。

    安卓端除了主动 BLE Scan 有没有更好的方法?

    感谢各位!

    3 条回复    2024-04-11 10:32:40 +08:00
    liyafe1997
        1
    liyafe1997  
    OP
       2024-04-08 21:04:30 +08:00
    找到一个叫 Android beacon library 的东西,不知道效果怎么样,看起来用的人不多,有没有踩过坑的朋友?
    https://altbeacon.github.io/android-beacon-library/index.html
    jojo0830
        2
    jojo0830  
       2024-04-09 09:14:01 +08:00
    这套方案一个致命的问题就是后台保活。也许你该换一套方案,比如说,开发一个蓝牙设备,当发现手机的蓝牙信号后就发出信号,但是还有一个问题,就是,蓝牙的定位一般都不太准。
    snowflake007
        3
    snowflake007  
       2024-04-11 10:32:40 +08:00
    我们搞过蓝牙定位很不准,信号不稳定。现在扫描 Wi-Fi ,可是干扰项很多也不准。。。 搞
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1027 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:55 PVG 06:55 LAX 14:55 JFK 17:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86