Android7.0以上系统定位信息在锁频黑屏下获取及上传

需求:项目需要实时采集用户的经纬度信息并上传后台

实现及测试结果: 集成了高德地图获取经纬度,在7.0 8.0系统及锁屏,黑屏时部分手机无法获取定位信息,

解决方案如下:

1. 注册锁屏广播

/*****

    * 注册锁频广播

    */

    public void initLockScreenReceiver() {

        //注册锁屏广播,主要是解决高德在锁屏黑屏情况下定位不更新的问题

        IntentFilter intentfilter = new IntentFilter();

        intentfilter.addAction(Intent.ACTION_SCREEN_ON);

        intentfilter.addAction(Intent.ACTION_SCREEN_OFF);

        intentfilter.addAction(Intent.ACTION_USER_PRESENT);

        mreceiver = new Mreceiver();

        registerReceiver(mreceiver, intentfilter);

    }

2. 开启定时唤醒功能

IntentFilterintentFile =new IntentFilter();

intentFile.addAction("repeating");

locationReceiver =new LocationReceiver();

registerReceiver(locationReceiver, intentFile);

//写一个定时的Pendingintent

Intentintent =new Intent();

intent.setAction("repeating");

alarmPi = PendingIntent.getBroadcast(this, 0, intent, 0);

alarm = (AlarmManager) getSystemService(ALARM_SERVICE);

3. Android8.0系统上开启后台定位功能

@SuppressLint("NewApi")

private NotificationbuildNotification() {

Notification.Builderbuilder =null;

        Notificationnotification =null;

        if (android.os.Build.VERSION.SDK_INT >=26) {

//Android O上对Notification进行了修改,如果设置的targetSDKVersion>=26建议使用此种方式创建通知栏

            if (null ==notificationManager) {

notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

            }

StringchannelId = getPackageName();

            if (!isCreateChannel) {

NotificationChannelnotificationChannel =new NotificationChannel(channelId,

                        NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);

                notificationChannel.enableLights(true);//是否在桌面icon右上角展示小圆点

                notificationChannel.setLightColor(Color.BLUE); //小圆点颜色

                notificationChannel.setShowBadge(true); //是否在久按桌面图标时显示此渠道的通知

                notificationManager.createNotificationChannel(notificationChannel);

                isCreateChannel =true;

            }

builder =new Notification.Builder(getApplicationContext(), channelId);

        }else {

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

        }

builder.setSmallIcon(R.drawable.ic_launcher)

.setContentTitle(Utils.getAppName(this))

.setContentText("正在后台运行")

.setWhen(System.currentTimeMillis());

        if (android.os.Build.VERSION.SDK_INT >=16) {

notification =builder.build();

        }else {

return builder.getNotification();

        }

//        //启动定位上传

//        if(null != locationClient){

//            startLocation();

//        }

//initReceiver();

        wake();

        return notification;

    }

4. 开启设备锁不休眠并在AndroidManifest.xml种申请权限

    PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);

        wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "mywakrlock");

        wl.setReferenceCounted(false);

权限: <uses-permission android:name="android.permission.WAKE_LOCK"/>

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

5. 由于部分厂商做了低功耗处理,需要用户进入手机设置页面->手动打开锁屏清理应用,找到对应的app设置为不清理即可


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容