问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android保活——蓝牙唤醒(主动kill掉也可唤醒)

发布网友 发布时间:2022-11-27 10:01

我来回答

1个回答

热心网友 时间:2023-10-16 06:26

项目需要后台保活,但无论怎么保活,只要用户主动kill掉,app依然是活不了。

发现了蓝牙唤醒这个方式,用户主动kill掉也可行。

Android 8.0开始提供了 startscan的方法,

public void startScan(ScanCallback callback)

public void startScan(List<ScanFilter> filters,ScanSettings settings,ScanCallback callback)

public int startScan(List<ScanFilter> filters,ScanSettings settings,PendingIntent callbackIntent)

第一个没有过滤条件,锁屏就停止扫描

第二个可以加过滤条件,锁屏不影响扫描 

第三个的扫描结果由PendingIntent发送,即使app没有在运行,系统也可以扫描后唤醒app,这就是我们要的方法了。

PendingIntent是对Intent的封装,是满足某些条件或触发某些事件后才执行指定的行为,主要用于闹钟、通知、桌面部件。Android的四大组件之间通信用Intent,跨进程通信用PendingIntent。

Android 8.0 引进了Context.startForegroundService(),在系统创建服务后,应用需要在ANR发生前调用startForeground(int ,android.app.Notification),如果未及时调用该方法,系统将报ANR错误 。系统给前台服务的ANR时间是20秒。

用startScan蓝牙唤醒的原理是:app向系统订阅了扫描结果(预先加了过滤条件),当蓝牙连接断开的时候,设备就会发广播,这时系统就可以扫描到对应的广播,唤醒对应的service,这时想做什么操作就根据你的项目需要了。至于系统会为你扫描多久,这个还没测试。

(1)setScanMode有四个参数可以选 :

SCAN_MODE_BALANCED:在平衡电源模式下执行蓝牙LE扫描。返回扫描结果的速度能够很好地权衡扫描频率和功耗。

SCAN_MODE_LOW_LATENCY:扫描使用最高占空比。建议只在应用程序在前台运行时使用此模式。

SCAN_MODE_LOW_POWER:在低功耗模式下执行蓝牙LE扫描。这是默认的扫描模式,因为它消耗的能量最少。如果扫描应用程序不在前台,则强制执行此模式。

SCAN_MODE_OPPORTUNISTIC:一种特殊的蓝牙LE扫描模式。使用这种扫描模式的应用程序将被动地侦听其他扫描结果,而不启动BLE扫描本身

(2)settingBuilder.setMatchMode有两个参数可以选:

MATCH_MODE_AGGRESSIVE:  信号弱也会报告 

MATCH_MODE_STICKY:  信号比较强和扫描到的次数比较多才会报告

(3)settingBuilder.setCallbackType也有其他参数可选,但适用的就一个

  (4)  ScanFilter  的过滤方法有几个,如下图,打勾的是测试了可行的,但只有第一个DeviceAddress有唯一性  
Android 如何进行进程保活

那么你打开任意一个阿里系的 app 后,有可能就顺便把其他阿里系的 app 给唤醒了。 这个完全有可能的。此外,开机,网络切换、拍照、拍视频时候,利用系统产生的广播 也能唤醒 app,不过 Android N 已经将这三种广播取消了。 如果应用想保活,要是 QQ,微信愿意救你也行,有多少手机上没有 QQ,微信呢?或 者像友盟,...

kudu tablet unhealthy 问题是什么原因造成?怎么...

网络故障:Tablet Server与其他组件之间的网络故障可能会导致Tablet出现unhealthy状态。可以通过检查网络连接是否正常来解决此问题。磁盘故障:Tablet Server上的磁盘故障可能会导致Tablet出现unhealthy状态。可以通过检查Tablet Server上的磁盘...

如何让一个应用程序一直在后台运行

1 开机,网络切换,拍照,拍视频等利用系统广播唤醒APP 此场景Google已经意识到,在Android N 取消了 拍照,视频,网络切换的广播 2 接入第三方的SDK也会唤醒相应的APP进程 3 假如你手机里装了支付宝,淘宝,UC等阿里系的APP,那么你打开任何一个,都有可能唤醒其他的阿里系的APP 3 白色保活:就是调...

进程保活

答:进程保活就是进程永远存在内存中,是杀不死的,就算杀死了也会有办法重新启动起来,其实这些并不是流氓手段,很多情况下,如果你想给你的用户提供服务,就必须有一个进程常驻着,便于在特定的时候做一些特定的事情,比如广播接受者,他就不支持静态注册,也就是说如果我们想接受屏幕开关启动的广播,...

Service的保活机制

【可行性】多个app应用唤醒需要相互之间有关联才能实现,推送sdk应用间唤醒当用户强制停止后无法唤醒。4.利用Android系统提供的帐号和同步机制实现 在应用中建立一个帐号,然后开启自动同步并设置同步间隔时间,利用同步唤醒app。账号建立后在手机设置-账号中能看到应用的账号,用户可能会删除账号或者停止同步,...

如何用蓝牙唤醒siri 蓝牙耳机怎么唤醒siri 蓝牙三国杀killhd 蓝牙三国killhd破解版 三国kill蓝牙版 蓝牙三国kill苹果 蓝牙三国kill官网 蓝牙三国kill破解版 蓝牙三国kill破解版怎么用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人补充养老保险怎么买? 电气化铁路中国发展 视网膜屏iPad mini 2真的能护眼吗? ipad6和ipadair有什么区别吗? 老家领的结婚证外地可以办离婚吗 在老家登记是否能在外地离婚 老家登记能在外地离婚吗 云南旅游股票有哪些(旅游股票有哪些) 什么是旅游板块股票 促进猫咪毛发生长吃什么 毛质粗糙怎么改善 朱砂在哪里能买到 东莞哪里有卖朱砂粉 jeep自由光空调滤进气方向 空气滤芯多久换一次jeep 吉普牧马人空调滤芯在哪 指南者空调滤清器怎么换? 学校里人证核验系统里面有什么功能? 《A Approach to Finance》txt下载在线阅读全文,求百度网盘云资源 上海别称 万科澜悦花园c区什么时候交房 从翁岩到万科城c区怎么走 西宁万科c区属于哪个社区 嘉陵江上的明珠——华能东西关水电站 我15岁胸这么大正常吗,我14岁胸这么大正常吗 生物制品板块内为什么没有和邦生物 赛伦生物中签是什么板块 在34度中午出去玩会怎么样? 饮酒驾驶34度会怎样处罚 百利金的量产 百利金哪款钢笔性价比较好?送给男朋友的,大学狗请考虑一下价格。。。 Apache Phoenix(十一)新特性之SKIP扫描查询 图片删了,也在回收站删了,然后关机,要怎么样才能复原? ComponentScan注解的扫描范围及源码解析 麦克维尔中央空调排名第几 韩国比较好的眼霜推荐 去韩国必买的眼霜 2014中国网球公开赛对阵名单 牧原股份历年年报?牧原股份股票信息?牧原股份为何暴趺? 辽宁省沈阳市浑南区白塔街道下辖村委会有哪些? 隆河谷距离沈阳南站大约步行需要多长时间? 龙河谷楼盘离沈阳小石城离四号线多远沈阳的 沈阳隆河谷二期逾期交房,请问16年7月份能否交房 什么样的机子适合学生用? 求《高盛帝国》上下两册,txt版本,全集36章。 《郎咸平说:新帝国主义在中国一个中国经济学家的良心话》pdf下载在线阅读全文,求百度网盘云资源 中国稀土港股为什么那么低 范大将军脱口秀那期? 汽车皮带是什么? k243火车经过哪些站 西安到厦门的火车K243几天一趟?票好买吗?提前几天买?可以在陕西汉中直接买吗? k243列火车是到厦门的哪个火车站?是厦门北站吗?