百度地图前台定位服务集成指南

安卓应用里搞定位,想稳定靠谱的话,百度地图的前台服务方式还挺值得一试的。它的特点就是能常驻通知栏,系统就不会随便把你的定位服务干掉,适合导航、打车这类一直要定位的场景。

前台服务的概念其实也不复杂,简单说就是弄个通知,让系统知道你这服务重要,不该轻易被杀。只要搞明白这个机制,再配合百度地图 SDK,定位就稳得住。

先在百度地图开放平台申个API 密钥,在build.gradle里加一句:

implementation 'com.baidu.mapapi:baidumapapi:5.2.1'

再别忘了在AndroidManifest.xml里加上定位、网络这些权限。

新建一个LocationService类,继承自Service,初始化地图 SDK、设置定位参数、启动定位服务,基本就成了。定位用LocationClient,参数可以配置成高精度模式,定位频率比如每秒一次,用起来还蛮灵活。

通知也别省,前台服务得靠它保命。用NotificationCompat.Builder建个通知,再用startForeground()绑上就行。像这样:

Notification notification = new NotificationCompat.Builder(this)
  .setContentTitle("定位服务")
  .setContentText("正在获取您的位置信息")
  .setSmallIcon(R.mipmap.ic_launcher)
  .build();
startForeground(NOTIFICATION_ID, notification);

记得适配下 Android 6.0+的动态权限申哦,不然运行时直接崩了可别怪我没提醒。用ActivityCompat.checkSelfPermission()requestPermissions()就行。

如果你正好在做需要持续定位的 APP,这套前台服务加百度地图的组合还挺香的。你也可以顺手看看这些相关的例子和源码,能帮你更快上手:

嗯,,这套方案比较实用,适配做得好,定位也稳定。如果你在做地图类应用或者需要后台持续定位的功能,可以直接上手试试。

rar 文件大小:26.97MB