BLE(Bluetooth Low Energy)---first part

   

      原文地址:https://developer.android.com/guide/topics/connectivity/bluetooth-le.html#terms

    (本人是技术宅,翻译时候,只要以简洁易懂为准,看过一部分后,如果感觉我翻译的不够文艺,文法,咋样咋样的,请不要往下看了,你可以去看原文了,就别在这儿浪费时间了~)

     安卓4.3(api level>=18)引入了内置的平台支持低功耗设备。通过这套API,应用能发现设备,查询设备,读写一些特性(不知道该翻译成啥,先这样)。与传统蓝牙相比,低功耗的BLE提供了明显更少的耗电量。这允许安卓app和BLE设备在低电量要求下,例如,贴身的传感器,心率设备,健身设备等。

 

   Key Terms and Concepts

      一些概念性的东西先说下:

      Generic Attribute Profile (GATT)——GATT是一个发送和接收短距离数据的规范。所有低耗能应用基本上基于GATT。

          蓝牙SIG为低耗能设备定义了很多规范。一个规范说明了一个设备该如何工作在应用中。一个设备可以实现很多个规范。例如,一个设备能包含心率设备和一个电池探测器。

      Attribute Protocol (ATT)——GATT是构筑在ATT协议上的。经常俩货放在一起玩儿。ATT是被优化后跑在BLE设备上的。到结束的时候,它尽量使用更少的字节。每一个特性都是用UUID唯一标识的,用这个128位做唯一标识。这个特性被规范成了characteristics and services(下面再说这俩货) 。

        Characteristic—一个特征包含一个单独的value和一个0-n的描述来描述特性的值。一个特性能被理解为一个类型,类似一个类。

        Descriptor—描述被特性定义,用来形容一个特征的值。例如,一个描述可能被指定成一个人类可读的描述,一个特性可以接受的值的段,或者是一个特性的具体的值。

          Service—一个服务是一个组特性的集合。例如,你可以有一组服务叫“”心率啥啥啥“”。里面包括心率测量特性。你可以再蓝牙4.0官网找到一些官方提供的服务。

       先睡了,等中秋回家养肉的时候,再继续更。

 

 

时间: 2024-08-30 21:18:06

BLE(Bluetooth Low Energy)---first part的相关文章

Android设备间实现蓝牙(Bluetooth)共享上网_Android

Android设备之间可以除了通过wifi热点共享上网,还可以通过蓝牙共享上网,后面这个功能很少人使用,但适合某台设备没有wifi却有蓝牙的情况. 一.设置WT19i,系统设置>无线连接>网络共享>开启蓝牙共享网络(这步很多人忽略,导致无法上网) 二.开启N7 二代蓝牙并配对,返回WT19i,已配对设备>配置>开启互联网连接共享 三.设置N7 二代,已配对设备>配置>开启互联网访问(第二步主机共享没开启的话这里也无法开启) 测试效果良好,访问网络正常,Androi

用canvas 实现个图片三角化(LOW POLY)效果_javascript技巧

之前无意中看到Ovilia 用threejs做了个LOW POLY,也就是图片平面三角化的效果,觉得很惊艳,然后就自己花了点时间尝试了一下. 我是没怎么用过threejs,所以就直接用canvas的2d绘图API来做,因为感觉似乎这效果也用不上threejs. 直接上demo先:http://whxaxes.github.io/canvas-test/src/Funny-demo/lowpoly/index.html (也可以在移动端看,不过因为计算量比较大,移动设备计算起来会比PC要多花些时间

ym——android源码大放送(实战开发必备)

文件夹 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.com文件列表生成工具.bat │  使用说明.txt │  免费下载更多源码.url │  目录列表.txt │   ├─android web应用 │      jqmDemo_static.zip │      jqmMobileDemo-master.zip │      jqmMobileDemo1_1-master.zip │      Location1014.rar │ ├─anko │    

Android 开源源代码收集(不断更新中...)

图片加载:Android-Universal-Image-Loader                地址:https://github.com/nostra13/Android-Universal-Image-Loader http请求:android-async-http/               地址:https://github.com/loopj/android-async-http facebook-sdk-android:https://github.com/facebook/

这里我们可以看到:Person是个多层次对象,包含多层嵌入属性对象(multi-layer embeded objects)。如果需要更改Person类型实例中的任何字段时,我们可以直接用行令方式(imperative style):

  scala中的case class是一种特殊的对象:由编译器(compiler)自动生成字段的getter和setter.如下面的例子: 1 case class City(name:String, province: String) 2 case class Address(street: String, zip: String, city: City) 3 case class Person(name: String, age: Int, phone: String, address:

数据结构的广义表,课本上GetHead((B,C))=B,为什么?

问题描述 数据结构的广义表,课本上GetHead((B,C))=B,为什么? 数据结构的广义表,课本上GetHead((B,C))=B,为什么?可网上的题为什么都做成 GetHead((B,C))=(B,C)呢,弄不明白,求大神指导 解决方案 GetHead((B,C))=B 这是对的 GetHead((B,C))=(B,C) 这个在哪里看来的 解决方案二: 哦,我知道了, GetHead(B,C)=B GetHead((B,C))=(B,C) 解决方案三: 解决方案四: 可课本上明明写着Get

iOS 开发库(iOS Developer Library)

iOS 开发库(iOS Developer Library) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 以下为详尽部分,如感觉过于冗长,可移步<iOS 开发库概要(iOS Devel

《C#本质论(第4版)》一1.2 C#语法基础

1.2 C#语法基础 C#本质论(第4版) 成功编译并运行HelloWorld程序之后,我们来分析代码,了解它的各个组成部分.首先熟悉一下C#关键字以及开发者选用的标识符. 初学者主题:关键字 为了帮助编译器解释代码,C#中的某些单词具有特殊地位和含义,我们将其称为关键字.关键字提供了具体的语法,编译器根据这些语法来解释程序员书写的表达式.在HelloWorld程序中,class.static和void均是关键字. 编译器利用关键字来识别代码的结构与组织方式.因为编译器对这些单词有着严格的解释,

通向架构师的道路(第二十七天)IBM网格计算与企业批处理任务架构

一.批处理 我们在一些项目中如:银行.保险.零商业门店系统中的对帐.结帐.核算.日结等操作中经常会碰到一些"批处理"作业. 这些批处理经常会涉及到一些大数据处理,同时处理一批增.删.改.查等SQL,往往涉及到好几张表,这边取点数据那边写点数据,运行一些存储过程等. 批处理往往耗时.耗资源,往往还会用到多线程去设计程序代码,有时处理不好还会碰到内存泄漏.溢出.不够.CPU占用高达99%,服务器被严重堵塞等现象. 笔者曾经经历过一个批处理的3次优化,该批处理笔者按照数据库连接池的原理实现了