Android-Ble蓝牙开发Demo示例–扫描,连接,发送和接收数据
万物互联的物联网时代的已经来临,ble蓝牙开发在其中扮演着举重若轻的角色。最近刚好闲一点,抽时间梳理下这块的知识点。
涉及ble蓝牙通讯的客户端(开启、扫描、连接、发送和接收数据、分包解包)和服务端(初始化广播数据、开始广播、配置Services、Server回调操作)整个环节以及一些常见的问题即踩过的一些坑。
文件:url80.ctfile.com/f/25127180-741330870-02a88e?p=551685 (访问密码: 551685)
DOM(Document Object Model)文档对象模型,将文档document解析为一个由节点和对象(包含属性和方法的对象)组成的逻辑树,每个节点都是一个对象,document 对象就是整个DOM树的根节点。DOM提供的API方法用来管理这棵树,用JavaScript 等脚本语言操作文档结构、样式和内容。
5f9f1289909ffdf88033e5bd92ad7ae9_v2-30a65f5bc123bc513dc2584c5c2e517f_1440w_source=172ae18b.jpg
1.1、DOM结构-节点/元素
DOM树是由很多节点构成,分为下面几种类型,注意节点是包含文本、注释的。
节点类型 描述 示例
document文档节点 document文档本身,DOM的入口(根) document
element元素节点 所有HTML元素Element /ˈelɪmənt/ i html、body、a、p
attribute属性节点 元素的属性 id、name、href、class
文本节点 元素内的文本形成文本节点 文本字符、换行、空格
注释节点 注释
一颗完整的DOM树,除了显而易见的元素,还有注释、换行符构成的文本类节点。
The truth about elk.
- An elk is a smart
- ...and cunning animal!
image.png
当前选择元素$0:在浏览器控制台中,$0标识当前选中的元素。$0.style.background=‘red’;
节点和元素在DOM树上的不同视图(导航方式)如下图,现代JS中主要使用元素导航属性。
image.pngimage.png
✅节点-导航属性 描述 ✅元素-导航属性 描述
parentNode 父节点 parentElement 父元素,一般和parentNode一样,只有document.documentElement不同
firstChild 第一个子节点 firstElementChild 第一个子元素
lastChild 最后一个子节点 lastElementChild 最后一个子元素
childNodes 子节点集合 children 子元素集合
nextSibling 下一个兄弟节点 nextElementSibling 下一个兄弟元素( Sibling/ˈsɪblɪŋ/ 兄弟)
previousSibling 上一个兄弟节点 previousElementSibling 上一个兄弟元素(/ˈpriːviəs/以前 )
document.documentElement.parentNode; //HTMLDocument
document.documentElement.parentElement; //null
document.body.childNodes.length; //33
document.body.children.length; //16
document.body.firstElementChild;
❓元素节点:这里的导航属性都是只读的,不可用于插入、修改元素;都是实时的;集合是可迭代的,用for…of,不要用for(in)
1.2、节点Node/元素Element
节点/元素的继承层次结构如下,最基础的EventTarget又继承自Object,因此可以自由添加属性、方法。
image.png
EventTarget:—— 是一切的根(“抽象(abstract)”类),定义了基础的事件。
Node:也是一个“抽象”类,充当 DOM 节点的基础,提供了节点导航功能,如parentNode,nextSibling,childNodes 等。
Document:表示整个文档,全局变量document就是他。
CharacterData:一个文本“抽象”类,被Text(文本节点) 、Comment (注释节点)继承。(Character/ˈkærəktər/ 符号文字)
Element:是 DOM 元素的基础类,提供了元素导航功能,如nextElementSibling,children等,以及搜索方法getElementsByTagName 和 querySelector等。
HTMLElement:所有 HTML 元素的基础类,常用的如:HTMLInputElement、HTMLBodyElement、HTMLAnchorElement、HTMLDivElement、HTMLTableElement
document.body.querySelector(“div”).constructor.name; //HTMLDivElement
document.body.querySelector(“div”).toString(); //[object HTMLDivElement]
Android-Ble蓝牙开发Demo示例–扫描,连接,发送和接收数据相关推荐
- Android BLE蓝牙开发知识总结
Android BLE蓝牙开发知识总结 1.蓝牙介绍 1.1什么是蓝牙? 蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换(使用2 ...
- Android Ble蓝牙开发总结
Android Ble蓝牙开发总结 前言 本文总结了ble的搜索,连接,读写操作.以及在开发过程中可能遇到的坑. 首先我们需要知道,什么是ble. 蓝牙发展至今经历了8个版本的更新.1.1.1.2.2 ...
- Android BLE 蓝牙开发指南(三)外围设备端开发详解
Android BLE开发指南(一)入门基础 Android BLE开发指南(二)中心设备端程序开发详解 这篇文章将会详细讲解低功耗蓝牙外围设备端程序开发的主要流程.对于Android开发者而言,或许 ...
- Android BLE 蓝牙开发-扫码枪集成
一.蓝牙模式HID与BLE 当扫码枪与手机连接时,通常采用的是蓝牙HID(Human Interface Device)模式.本质上是一个把扫码枪作为一个硬件键盘,按照键盘协议把扫码后的结果逐个输入到 ...
- android ble 蓝牙绑定流程,android BLE蓝牙开发
蓝牙BLE设备是目前比较热门的设备.由于BLE有低功耗等特点,被广泛应用到身边的电子产品上.如智能手表.手环.防丢器等各种产品上.最近研究一下android上的ble应用开发.跟大家分享一下相关的内容 ...
- Android Ble蓝牙开发
BLE Android 应用 开发 1.权限设置 2.获取蓝牙设备管理器 3.设备搜索 3.1 停止搜索 4.设备连接 5.设备的重连 6.设备的断开与服务关闭 7.通知的注册与接收 8.数据的主动读 ...
- Android 低功耗蓝牙开发
初识低功耗蓝牙 Android 4.3(API Level 18)开始引入Bluetooth Low Energy(BLE,低功耗蓝牙)的核心功能并提供了相应的 API, 应用程序通过这些 API 扫 ...
- Android BLE蓝牙4.0开发 实现扫描、连接、通讯、获取通知、特性等 (一、打开蓝牙 进行扫描)
目录 首先说下蓝牙4.0 目前android蓝牙有2种: ble蓝牙开发流程: 1.首先当然是进行权限申请啦: 2.获取蓝牙适配器 BluetoothAdapter 3.打开蓝牙 4.关闭蓝牙 5.在 ...
- 【Android】蓝牙开发——BLE(低功耗蓝牙)(附完整Demo)
目录 目录 前言 一.相关概念介绍 二.实战开发 三.项目演示 四.Demo案例源码地址 五.更新记录 1.2020/12/29 :修改 setupService()中错误 2.2021/05/14 ...
最新文章
- 程序员计算器_GitHub 日收 7000 星,Windows 计算器项目开源即爆红!
- 浩鲸新智能解决方案工程师面试_华为解决方案技术工程师面试?
- left join on多表关联_资深DBA整理MySQL基础知识三:迅速理解MySQL的关联和子查询...
- CentOS6.5系统重启后宕机
- Android 平台下Cordova 调用Activity插件开发
- android 启动一个应用,android 在一个应用中启动另一个应用
- 卸载 趋势科技防毒墙网络版
- 算法设计与分析知识点整理
- 爱奇艺推出“帧绮映画MAX”标准打造高品质视听 多款电视机型获认证
- flink 空闲窗口-withIdleness
- 聊一聊KOA的洋葱模型
- Win2k高级技巧 -----引用至某BLOG.保存了很久了.
- pr无法启动此程序因为计算机中丢失api,pr2017安装丢失的api
- 基于Bootstrap的网页开发
- 南京邮电大学计算机非全调剂,南京邮电大学2018年拟接收(非全日制)考研调剂公告...
- html鼠标四种,鼠标有哪些种类?四种鼠标类型的优缺点
- 微信支撑10亿用户背后核心技术,竟然是它...
- matlab求单自由度振动方程为,单自由度振动方程与Matlab/Simulink求解
- C++面试题(一)——基础概念篇
- vue3从父组件将标签属性(class、id等)传给子组件中的指定的标签
热门文章
- CentOS7快速搭建DNS中转服务器
- SSL-TLS 双向认证:SSL-TLS 工作原理
- Android中自动拦截电话
- 曙光5000a超级计算机性能,曙光5000A 超级计算机的Linpack 测试
- 2022年 清华大学大数据研究中心 | 招募专业实践基地合作单位
- 学习笔记:AC+AP配置:同一个SSID,多个AP的无缝连接漫游。
- PFNet:Camouflaged Object Segmentation with Distraction Mining——论文简述
- “揭开意识的奥秘:认知相对论”及作者李玉鑑简介 (公号发“李玉鑑AI”下载PDF资料,欢迎转发、赞赏支持科普)
- 我方卧底发自美团的真实Android资料
- NB 的开源项目遍地开花——GitHub 热点速览 Vol.41