应用后台持续定位

您所在的位置:网站首页 企业微信正在持续定位 应用后台持续定位

应用后台持续定位

2024-07-15 19:56:55| 来源: 网络整理| 查看: 265

使用场景

该示例主要展示App切换到后台熄灭屏幕后如何持续获得设备位置。

用到产品

Android 定位 SDK

核心类/接口

接口

说明

版本

AMapLocationClient

startLocation();

启动定位

V2.0.0版本起

setLocationOption(mLocationOption);

给定位客户端设置参数

V2.0.0版本起

AMapLocationClientOption

setInterval(long time);

设置连续定位时间间隔

V2.0.0版本起

AMapLocationListener

onLocationChanged(AMapLocation amapLocation) ;

监听器回调方法

V2.0.0版本起

核心难点

首先在本地服务中启动连续定位功能,通过设置一个Alarm定期对本地服务进行周期唤起,从而达到后台持续定位的效果。

1、在本地服务里启动连续定位:

Java//在activity中启动自定义本地服务LocationService getApplicationContext().startService(new Intent(this, LocationService.class)); //在LocationService中启动定位 mLocationClient = new AMapLocationClient(this.getApplicationContext()); mLocationOption = new AMapLocationClientOption(); // 使用连续定位 mLocationOption.setOnceLocation(false); // 每10秒定位一次 mLocationOption.setInterval(10 * 1000); mLocationClient.setLocationOption(mLocationOption); mLocationClient.setLocationListener(locationListener); mLocationClient.startLocation();

2、创建并启动Alarm。

Java//创建Alarm并启动 Intent intent = new Intent("LOCATION_CLOCK"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); // 每十五秒唤醒一次 long second = 15 * 1000; alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), second, pendingIntent);

3、通过Alarm启动本地服务,如果定位停止,在服务中再次启动。

Javapublic class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("LOCATION_CLOCK")) { Log.e("ggb", "--->>> onReceive LOCATION_CLOCK"); Intent locationIntent = new Intent(context, LocationService.class); context.startService(locationIntent); } } }

然后,定期在CPU休眠之前进行屏幕点亮操作。这个操作会导致cpu无法休眠耗电量增加,请谨慎使用。

Javaif (powerManager == null) { //针对熄屏后cpu休眠导致的无法联网、定位失败问题,通过定期点亮屏幕实现联网,本操作会导致cpu无法休眠耗电量增加,谨慎使用 powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl=powerManager .newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.SCREEN_DIM_WAKE_LOCK, "bright"); wl.acquire(); //点亮屏幕 wl.release(); //释放 }


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭