安卓BLE发送广播
来源:互联网 发布:中兴软件开发怎么样 编辑:程序博客网 时间:2024/06/08 11:11
有接触过安卓蓝牙开发的都知道,咱们可以使用BluetoothAdapter.startLeScan(LeScanCallback);(API21后使用BluetoothLeScanner.startScan(ScanCallback);)去接收周边蓝牙设备的广播。
那么手机如何作为周边设备发送广播呢?
在API21后有一个BluetoothLeAdvertiser顾名思义,该类就是低功耗蓝牙发送广播的一个类,该对象可以通过BluetoothAdapter.getBluetoothLeAdvertiser();获取。详细代码如下:
private static String ADVERTISER_SERVICE_UUID_BASE = "abcd";private static String ADVERTISER_SERVICE_UUID = "0001" + ADVERTISER_SERVICE_UUID_BASE + "-0405-0607-0809-0a0b0c0d0e0f";// 广播包不得超过31字节(详细AdvertiseCallback错误代码)// 也就是说serverData 不得超过23字节private static byte[] EDDYSTONE_SERVER_DATAS = {// 0x02, 0x01, 0x02,// 0x1b, 0x16, 0xcd, 0xab, // uuid 0x17, 0x16, (byte) 0xAA, (byte) 0xFE, // UID type's len is 0x17 0x00, // UID type 0x08, // tx power 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, // NID 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // BID (byte) 0xff, (byte) 0xff // RFU};/** * API必须为21及以上 */private void startBLeAdvertiser() { bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); bluetoothAdapter = bluetoothManager.getAdapter(); BluetoothLeAdvertiser advertiser = bluetoothAdapter.getBluetoothLeAdvertiser(); // TODO 在这里设置广播信息 AdvertiseData data = new AdvertiseData.Builder() .addServiceData(ParcelUuid.fromString(ADVERTISER_SERVICE_UUID), EDDYSTONE_SERVER_DATAS).build(); AdvertiseSettings settings = new AdvertiseSettings.Builder().setConnectable(true).build(); text.append("\r\nstartAdvertising..."); advertiser.startAdvertising(settings, data, new AdvertiseCallback() { @Override public void onStartSuccess(AdvertiseSettings settingsInEffect) { super.onStartSuccess(settingsInEffect); text.append("\r\nonStartSuccess..."); text.append("\r\ntoString:" + settingsInEffect.toString()); text.append("\r\ndescribeContents:" + settingsInEffect.describeContents()); text.append("\r\ngetMode:" + settingsInEffect.getMode()); text.append("\r\ngetTimeout:" + settingsInEffect.getTimeout()); text.append("\r\ngetTxPowerLevel:" + settingsInEffect.getTxPowerLevel()); } @Override public void onStartFailure(int errorCode) { super.onStartFailure(errorCode); text.append("\r\nerrorCode:" + errorCode); } });}注:每次启动的MAC_ADDRESS都是不一样的。
0 0
- 安卓BLE发送广播
- 安卓发送广播
- 安卓开发之发送自定义广播
- 【Android】安卓学习笔记之广播(三)发送标准广播和有序广播
- 安卓ble开发
- 关于安卓发送有序广播的问题
- 【BLE】CC2541之通过广播发送自定义数据
- 安卓笔记之自定义广播事件发送自定义广播以及接受者优先级
- 安卓BroadcastReceiver组件使用系列2:给多个广播接收者发送广播和有序广播的使用
- 安卓ble开发资料
- 【安卓】Broadcast广播
- 安卓广播接收者
- 安卓广播
- 安卓广播BroadcastReceiver
- 安卓广播事件
- 安卓-无序广播
- 安卓广播大全
- 安卓广播
- php实现签到功能
- MyEclipse2015 Web项目转Maven项目
- Struts2拦截器
- js:返回到页面时滚动到上次浏览位置
- spring中的web上下文,spring上下文,springmvc上下文区别(超详细)
- 安卓BLE发送广播
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
- JavaScript中的splice()和slice()方法比较
- 编程中的相对路径问题
- Python中turtle模块
- 自定义控件TitleView
- 关于友盟使用注意事项
- web旋转动画
- 数据库