发现了蓝牙唤醒这个方式,用户主动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控制系统”除了可以控制计算机端口外,还具有“上网行为管理”功能、“存储设备控制”、“智能设备接入计算机控制”以及“ *** 作系统服务和功能控制”内容。只需要在软件界面中勾选对应的选项,即可实现禁用或启用相应的功能 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)