android开发百度地图坐标偏差,Android定位SDK

您当前位置: Android定位SDK > 开发指南 > 实用文档 > Android 8.0开发须知

Android 8.0 开发须知

更新时间:2019年06月03日

Android 8.0系统增加了很多新特性,对位置影响较大的特性就是增强了对后台定位的限制。

Android 8.0系统为实现降低功耗,无论应用的目标SDK版本为多少,Android 8.0系统都会对后台应用获取用户当前位置的频率进行限制,只允许后台应用每小时接收几次位置更新。

根据Android 8.0的开发指引,为了适配这一系统特性,百度地图定位SDK新增加接口。它的实现原理就是开发者通过新接口生成一个前台服务通知,使得开发者自己的应用退到后台的时候,仍有前台通知在,规避了Android 8.0系统对后台定位的限制。

注意:如果您的App在退到后台时本身就有前台服务通知,则无需按照本章节的介绍做适配。

核心实现代码如下,详细代码请参考Demo。

//开启前台定位服务:

Notification.Builder builder = new Notification.Builder (MainActivity.this.getApplicationContext());

//获取一个Notification构造器

Intent nfIntent = new Intent(MainActivity.this.getApplicationContext(), MainActivity.class);

builder.setContentIntent(PendingIntent.getActivity(MainActivity.this, 0, nfIntent, 0)) // 设置PendingIntent

.setContentTitle("正在进行后台定位") // 设置下拉列表里的标题

.setSmallIcon(R.mipmap.ic_launcher) // 设置状态栏内的小图标

.setContentText("后台定位通知") // 设置上下文内容

.setAutoCancel(true)

.setWhen(System.currentTimeMillis()); // 设置该通知发生的时间

Notification notification = null;

notification = builder.build();

notification.defaults = Notification.DEFAULT_SOUND; //设置为默认的声音

mLocClient.enableLocInForeground(1001, notification);// 调起前台定位

//停止前台定位服务:

mLocClient.disableLocInForeground(true);// 关闭前台定位,同时移除通知栏

在Android 8.0系统中,Notification增加了新的接口,建议开发者针对Android 8.0做特别适配,详细代码可参考Demo。

注意:本接口不一定只在Android 8.0系统上使用,在其他版本Android系统中使用也可最大程度的增加定位进程的存活率,提升后台定位效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值