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

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

项目需要后台保活,但无论怎么保活,只要用户主动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有唯一性  

您好,蓝牙设备唤醒是指通过蓝牙信号来唤醒设备,让其从待机状态转换为工作状态。它的作用主要有以下几点:

1. 节能:蓝牙设备唤醒可以让设备在不需要使用时处于低功耗待机状态,从而节省能源,延长电池寿命。

2. 方便使用:蓝牙设备唤醒可以让用户在不需要手动开启设备时,通过其他设备或应用程序来控制设备的开关和使用。

3. 提高效率:蓝牙设备唤醒可以让设备在需要使用时立即启动,从而提高设备的响应速度和工作效率。

4. 扩展功能:蓝牙设备唤醒可以让设备与其他设备或应用程序进行互动,从而扩展设备的功能和应用场景。

总之,蓝牙设备唤醒是一种方便、节能、高效、功能扩展的技术,可以为用户带来更好的使用体验和更多的应用选择。

解决方式如下:

为了确保笔记本蓝牙功能的正常使用,我们需要确保蓝牙服务项运行正常:

按Windows+R打开“运行”窗口,输入“services.msc”打开“服务”窗口,找到“Bluetooth Hardsfree Service”服务项并选中点击“启动”。

对于笔记本蓝牙的开启方法,通常在笔记本电脑前面板或键盘上都会有相应的“开关”提示。如图所示,直接按“Fn”+“F5”即可开启笔记本蓝牙功能。

对于安装有高版本Windows *** 作系统的笔记本,可以通过“Windows移动中心”控制面板来开启笔记本蓝牙功能。如图所示:

如果成功开启了笔记本蓝牙功能,电脑屏幕将显示“正在启动蓝牙设备”的提示信息,如图所示,并自动检测周围可用的蓝牙设备。

笔记本蓝牙无法打开怎么办?

导致笔记本蓝牙无法正常工作的重要原因是系统设置不当所造成的,由于排查造成蓝牙打不开的原因比较多,其方法的解决需要具备一定的计算机基础才行。针对此类问题,我们可以借助专门用于对计算机 *** 作系统进行控制的软件来实现。直接在百度中搜索下载“大势至USB控制系统”。如图所示:

安装并运行此工具后,按Alt+F2组合键即可唤醒程序主界面,在“端口控制”栏目中勾选”禁用蓝牙“项,再次清除勾选“禁用蓝牙”项,即可恢复笔记本电脑蓝牙功能的正常使用。

当然,做为一款功能强大的计算机 *** 作系统控制软件,“大势至USB控制系统”除了可以控制计算机端口外,还具有“上网行为管理”功能、“存储设备控制”、“智能设备接入计算机控制”以及“ *** 作系统服务和功能控制”内容。只需要在软件界面中勾选对应的选项,即可实现禁用或启用相应的功能 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12154531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存