8.0ble设备 android_Android 8.0 进程拉活 --- 蓝牙唤醒

本文介绍了Android 8.0及以上版本如何利用蓝牙设备唤醒应用。从权限设置、API调用到注意事项,详细阐述了通过蓝牙广播唤醒应用的实现过程,适用于室内定位、活动推送等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

IPhone 可以通过 ibeacon 设备发出的蓝牙广播来唤醒应用,但android有没有类似的机制来进行唤醒app呢?

很开心的告诉你,在 android 8.0(android 0) 以上的系统已经支持了!!!

说明:

注:api level 26 即 android 8.0

该方法是用于扫描手机周边的蓝牙设备。在8.0以前,google提供的蓝牙扫描方法都是需要app进程还活。但该方法只要调用成功,无论app进程是否还活着,系统都会在后台持续执行蓝牙扫描。如果手机靠近指定的蓝牙设备附近,app就能被唤醒接收蓝牙的扫描结果。

用途:

该机制虽然只能在特定的区域对app进行唤醒,但在很多业务场景上非常实用,举几个栗子:

1.室内定位

2.进入商场用户立马能收到商场的活动信息

3.运动手环需要即时上报数据(如:电量不足等)

....

开发:

支持该机制的拉活,实际上就是让app去扫描一个特定的蓝牙广播,等待系统返回结果。相信有弄过蓝牙开发的小伙伴都知道蓝牙开发这个坑有多深,而下面是一个跳坑的教程。

一.权限:

注:ACCESS_FINE_LOCATION在android 6.0以上需要运行获取(见6.0以上运行时权限申请)。

app除获取了上述权限,还需要确保蓝牙开启,以下是代码开启蓝牙的方法:

//判断如果蓝牙没有开启的话,则进行提示用户开启

BluetoothManager bluetoothManager =(BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);

BluetoothAdapter bluetoothAdapter=bluetoothManager.getAdapter();if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled()) {

Intent enableBtIntent= newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

}

二.API调用

@TargetApi(26)public voidonOpen(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值