BLE自定义的 Characteristic 磁盘包含最大分区数的数据最大可以为多少

数据相关帖子
解释:高速CAN只是统称,是个速度范围值[125 k, 1M]bit/s,不是一个具体速度值。
本人总结,如有笔误,请拍砖!!
CAN总线误区,你中枪了吗 学习了
[size=4]中枪5:[/size]“CAN有消息ID总裁,所以小ID就能优先大ID发”
解释:如发送的bit时间是绝对一样的,这个是对的。
如果大ID的数据已经在发了,就算小ID优先级高,也要等大ID发...
句话很不好判断,楼主看问题没有抓住关键。
12864一般为表态驱动,“显示距离”不变化时,可以是单片机没更新数据,也可以是LCD和MCU分开了。...
/************************变量声明************************/
uchar lcd_x,lcd_y,data_byte=0,
uint TH_data,TL_data,RH_data,RL_data,CK_//传回的40位数据
uint TH_temp,TL_temp,RH_temp,RL_temp,CK_//处理后的数据...
我想请问一下,HalUARTWrite()与UartTX_Send_String()都是向串口发送数据吗,有什么区别
串口接收与发送问题 {:1_126:}
一个准备开网店的人,上山找老禅师诉苦:大师,为何在淘宝开网店怎么难?老禅师笑而不语,用手指沾了点茶杯里的水在桌子上写了一行字:去淘宝找星外人电子() 此人若有所思的说:大师的意思是我需要攒这么多钱一行再开?老禅师...
就是这段初始化代码的入口地址。执行完初始化代码后,库代码会自动跳到main函数继续运行。完成的内容有:c_int0函数进行以下工作以建立C运行环境:为系统堆栈产生.stack块,并初始化堆栈指针。从.cinit块将初始化数据拷贝到.bss块中相应的变量。调用main函数,开始运行C程序。
TMS320F28335学习笔记-启动过程...
最近做AD数据采集通过xilinx fpga 需要通过lvds引入信号,有没有大神给我讲讲这个咋个用?或者有现成的IP核
请问ADI官网有ad9624的IP核吗? 不好意思,说错了,,是AD9642...
近年来,众多医院将投入大量资金用于整修和改造过时的设备。医疗设备是医疗、科研、教研工作的最基本要素,也是不断提高医学科学技术水平的基本条件。生物医学检测系统的正确测量,为生物医学研究的正确结论和临床诊断的研究与分析提供所需要的数据和图像,在定量地诊断临床上的疑难病症等方面发挥着至关重要的作用。典型医疗检测系统将获取到的人体生理信息首先经过传感器后转换成电信号,再经过AD转换成数字信号进行处理...
产品编号:1501005高性能3U PXIE信号处理平台( B-PXIE-6455 )数据手册( Data Sheet )Version 1.0 清华大学设备仪器厂智能计算研发中心 | 清华仪器 1 板卡概述1.1 板卡简介B-PXIE-6455是一款基于PXI Express总线架构的高性能信号处理平台,该平台采用一片TI的DSP(TMS320C6455)处理器与一片Altera的FPGA...
=#3e3e3e]33、建立时间(Setup Time):建立时间就是接收器件需要数据提前于时钟沿稳定存在于输入端的时间。[/color]
[color=#3e3e3e]34、保持时间(Hold Time):为了成功的锁存一个信号到接收端,器件必须要求数据信号在被时钟沿触发后继续保持一段时间,以确保数据被正确的操作。这个最小的时间就是我们说的保持时间。[/color]
,需要向代理发送数据。IBM提供有MQTT的代理,所以你的板子需要有网络访问功能。你用手机BLE可能更容易实现,参见我写的帖子。
.cn/thread--1.html
里边有关于IBM云的测试,就是利用MQTT实现的。你可以在PC上使用hrome浏览器测试mqtt。
要使用contiki访问外网的话,你需要一个路由器或者直接加一个网...
品牌力量作为业内顶尖的的电子产业盛会,每一届NEPCON China都会密切顺承当前的产业格局与政策动向。NEPCON China 2016上海展举办之际,恰逢《中国制造2025》规划作为实现制造强国的战略全面实施,由此将引发新一轮信息技术与制造业的深度融合。电子制造领域新的生产方式、产业形态和经济增长点遍地开花,汽车电子、平板显示、3D打印、移动互联网、云计算、大数据、新材料等领域均取得重大突破...
;&在做这个气象站之前,我去国内的一些气象站网站试着获得数据,但是很多不让访问,还有一些要收费,没办法,最后找了个国外免费的网站,http://openweathermap.org/api。这个网站其实也分免费和商用两种,我申请的前面一种。要访问这个网站的天气预报数据,需要先注册一个帐号,获得appid,才可以访问,返回的天气预报数据主要支持json,xml,html格式,默认返回格式是...
& && &&&if(byte[5]==100)//取第六个单元数据
& && && && &PORTB = ~PORTB;
HELO&domain&&CRLF&;识别发送方到接收SMTP的一个HELLO命令
MAIL FROM:&reverse-path&&CRLF&;为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。
RCPT TO:&lt...
这个怎么看?
这个封装信息怎么标了两组数,怎么看? 应该是:
1、上下 max/min
2、左右 inch (mm)
这两组数据分别是最大值和最小值。这是因为在生产过程中可能有误差和工艺偏差。这里的意思是芯片尺寸在这个范围之内。一般取个适中值进行计算。两者平均值。
一般会是最大值和最小值,一般我们就像3楼版版说的,取平均值就可以了。
楼主是女生吧,有图有真相。看来是新手,少看资料...
二、ePWM所需配置流程与内容(每个周期进入一次中断)Step1:初始化GPIO-ePWM2& & InitEPwm2Gpio();Step2:初始化PIE中断向量表,(使用中断方式接收上位机数据)& & EALLOW;& &//寄存器EALLOW保护& & PieVectTable.EPWM2_INT= &amp...
上位机数据)& & EALLOW;& &//寄存器EALLOW保护& & PieVectTable.SCIRXINTC=&scicRxFifoI//初始化PIE中断向量表& & // PieVectTable.SCITXINTC=&scicTxFifoI& & EDIS...
/msohtml1/01/clip_image003.gif 这是采样放大部分,由于公认的LM324用在这里性能并不是太好,所以换了别的芯片,因为刚做了PCB板还没到,没实测数据,过几天再上实测数据。 这个是功率驱动部分,采用光耦加MOS的驱动方式,可保证在大电流的情况下长期稳定工作,而且瞬态响应快于三极管,这也是个经典电路了,比较成熟。 控制方式采用普通的6*6按键,因为我手上只有这种的,所以只...
/SYNC必须在D_IN发送24位后DAC才认为接收到的数据为有效数据,否则,将接收到的数据舍弃。本实验所使用的具体方法是开启28335SPI的FIFO功能,将24位数据帧分成两个12位的数据,依次存入SPITXBUF,这样就可以spi成功发送24的帧#include "DSP2833x_Device.h"& &&&// DSP2833x Headerfile...
3、流程:接收-&校验-&烧写-&跳转
三、升级步骤
1、数据接收:通过CAN/串口等方式接收数据。由于28335内存较小,不适合缓存大量的数据,这里是接收一部分数据,校验完成后烧写进Flash,再去接收一部分数据
2、数据解析:接收到的数据是hex格式的数据,所以需要解析才能放入对应的flash地址。但由于28335能力限制,这里采用先在上位机解析完成,采用先告知...
本周热门资源推荐Android4.3 蓝牙BLE初步 - Savage F. Morgan - 博客园
一、关键概念:
Generic Attribute Profile (GATT)
通过BLE连接,读写属性类小数据的Profile通用规范。现在所有的BLE应用Profile都是基于GATT的。
Attribute Protocol (ATT)
GATT是基于ATT Protocol的。ATT针对BLE设备做了专门的优化,具体就是在传输过程中使用尽量少的数据。每个属性都有一个唯一的UUID,属性将以characteristics&and&services的形式传输。
Characteristic
Characteristic可以理解为一个数据类型,它包括一个value和0至多个对次value的描述(Descriptor)。
Descriptor
对Characteristic的描述,例如范围、计量单位等。
Characteristic的集合。例如一个service叫做&Heart Rate Monitor&,它可能包含多个Characteristics,其中可能包含一个叫做&heart rate measurement"的Characteristic。
二、角色和职责:
Android设备与BLE设备交互有两组角色:
中心设备和外围设备(Central vs. peripheral);
GATT server vs. GATT client.
Central vs. peripheral:
中心设备和外围设备的概念针对的是BLE连接本身。Central角色负责scan advertisement。而peripheral角色负责make advertisement。
GATT server vs. GATT client:
这两种角色取决于BLE连接成功后,两个设备间通信的方式。
举例说明:
现 有一个活动追踪的BLE设备和一个支持BLE的Android设备。Android设备支持Central角色,而BLE设备支持peripheral角 色。创建一个BLE连接需要这两个角色都存在,都仅支持Central角色或者都仅支持peripheral角色则无法建立连接。
当 连接建立后,它们之间就需要传输GATT数据。谁做server,谁做client,则取决于具体数据传输的情况。例如,如果活动追踪的BLE设备需要向 Android设备传输sensor数据,则活动追踪器自然成为了server端;而如果活动追踪器需要从Android设备获取更新信息,则 Android设备作为server端可能更合适。
三、权限及feature:
和经典蓝牙一样,应用使用蓝牙,需要声明BLUETOOTH权限,如果需要扫描设备或者操作蓝牙设置,则还需要BLUETOOTH_ADMIN权限:
&uses-permission android:name="android.permission.BLUETOOTH"/&&uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"/&
除了蓝牙权限外,如果需要BLE
feature则还需要声明uses-feature:
&uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true"/&
按时required为true时,则应用只能在支持BLE的Android设备上安装运行;required为false时,Android设备均可正常安装运行,需要在代码运行时判断设备是否支持BLE
// Use this check to determine whether BLE is supported on the
device. Then// you can selectively disable
BLE-related features.if
(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE))
Toast.makeText(this,
R.string.ble_not_supported,
Toast.LENGTH_SHORT).show();&
& finish();}
四、启动蓝牙:
在使用蓝牙BLE之前,需要确认Android设备是否支持BLE
feature(required为false时),另外要需要确认蓝牙是否打开。&
如果发现不支持BLE,则不能使用BLE相关的功能。如果支持BLE,但是蓝牙没打开,则需要打开蓝牙。
打开蓝牙的步骤:
1、获取BluetoothAdapter
BluetoothAdapter是Android系统中所有蓝牙操作都需要的,它对应本地Android设备的蓝牙模块,在整个系统中BluetoothAdapter是单例的。当你获取到它的示例之后,就能进行相关的蓝牙操作了。
获取BluetoothAdapter代码示例如下:
// Initializes Bluetooth
adapter.final
BluetoothManager bluetoothManager
(BluetoothManager)
getSystemService(Context.BLUETOOTH_SERVICE);mBluetoothAdapter
bluetoothManager.getAdapter();
注:这里通过getSystemService获取BluetoothManager,再通过BluetoothManager获取BluetoothAdapter。BluetoothManager在Android4.3以上支持(API
level 18)。
2、判断是否支持蓝牙,并打开蓝牙
获取到BluetoothAdapter之后,还需要判断是否支持蓝牙,以及蓝牙是否打开。
如果没打开,需要让用户打开蓝牙:
private BluetoothAdapter
mBluetoothA...//
Ensures Bluetooth is available on the device and it is enabled. If
not,// displays a dialog requesting user
permission to enable Bluetooth.if
(mBluetoothAdapter ==
!mBluetoothAdapter.isEnabled())
{& & Intent
enableBtIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);&
startActivityForResult(enableBtIntent,
REQUEST_ENABLE_BT);}
五、搜索BLE设备:
通过调用BluetoothAdapter的搜索BLE设备。调用此方法时需要传入&参数。
因此你需要实现&接口,BLE设备的搜索结果将通过这个callback返回。
由于搜索需要尽量减少功耗,因此在实际使用时需要注意:
1、当找到对应的设备后,立即停止扫描;
2、不要循环搜索设备,为每次搜索设置适合的时间限制。避免设备不在可用范围的时候持续不停扫描,消耗电量。
搜索的示例代码如下:
/**&* Activity for scanning and displaying available BLE
devices.&*/public
class DeviceScanActivity
extends ListActivity
{& & private
BluetoothAdapter
mBluetoothA& &
private boolean
mS& & private
Handler mH& &
// Stops scanning after 10 seconds.& &
private static
final long SCAN_PERIOD
= 10000;& &
...& & private
scanLeDevice(final
boolean enable)
{& & & & if
{& & & & & & // Stops scanning after
a pre-defined scan period.& & & & & &
mHandler.postDelayed(new
Runnable()
{& & & & & & & &
@Override& & & & & & & &
public void
run() {& & & & & & & & &
& mScanning =& & & & & & & & & &
mBluetoothAdapter.stopLeScan(mLeScanCallback);&
& & & & & & & }& & & & & &
}, SCAN_PERIOD);& &
& & & & mScanning =& & & & & &
mBluetoothAdapter.startLeScan(mLeScanCallback);&
& & & } else
{& & & & & & mScanning =& & & & & &
mBluetoothAdapter.stopLeScan(mLeScanCallback);&
& & & }& & & & ...&
如果你只需要搜索指定UUID的外设,你可以调用&方法。
其中UUID数组指定你的应用程序所支持的GATT
Services的UUID。
的实现示例如下:
private LeDeviceListAdapter
mLeDeviceListA...//
Device scan callback.private
BluetoothAdapter.LeScanCallback
mLeScanCallback =& & & &
BluetoothAdapter.LeScanCallback()
{& & @Override& &
public void
onLeScan(final
BluetoothDevice device,
int rssi,& & & & & &
scanRecord) {& & & &
runOnUiThread(new
Runnable()
{& & & & &
&@Override& & & & &
&public void
run() {& & & & & & &
&mLeDeviceListAdapter.addDevice(device);&
& & & & & &
&mLeDeviceListAdapter.notifyDataSetChanged();&
& & & & &}& & &
注意:搜索时,你只能搜索传统蓝牙设备或者BLE设备,两者完全独立,不可同时被搜索。
六、连接GATT
两个设备通过BLE通信,首先需要建立GATT连接。这里我们讲的是Android设备作为client端,连接GATT
连接GATT Server,你需要调用BluetoothDevice的方法。此函数带三个参数:Context、autoConnect(boolean)和对象。调用示例:
mBluetoothGatt =
device.connectGatt(this,
mGattCallback);
函数成功,返回对象,它是GATT
profile的封装。通过这个对象,我们就能进行GATT Client端的相关操作。用于传递一些连接状态及结果。
BluetoothGatt常规用到的几个操作示例:
:连接远程设备。
discoverServices()
: 搜索连接设备所支持的service。
disconnect():断开与远程设备的GATT连接。
close():关闭GATT
Client端。
readCharacteristic(characteristic)
:读取指定的characteristic。
setCharacteristicNotification(characteristic,&enabled)
:设置当指定characteristic值变化时,发出通知。
getServices()&:获取远程设备所支持的services。
1、某些函数调用之间存在先后关系。例如首先需要connect上才能discoverServices。
一些函数调用是异步的,需要得到的值不会立即返回,而会在BluetoothGattCallback的回调函数中返回。例如
discoverServices与onServicesDiscovered回调,readCharacteristic与
onCharacteristicRead回调,setCharacteristicNotification与
onCharacteristicChanged回调等。
http://www.blogjava.net/zh-weir/archive//407373.htmlBLE 广播数据解析 - 推酷
BLE 广播数据解析
从上一篇GATT Profile 简介中提到过,BLE 设备工作的第一步就是向外广播数据。广播数据中带有设备相关的信息。本文主要说一下 BLE 的广播中的数据的规范以及广播包的解析。
BLE 中有两种角色 Central 和 Peripheral ,也就是中心设备和外围设备。中心设备可以主动连接外围设备,外围设备发送广播或者被中心设备连接。外围通过广播被中心设备发现,广播中带有外围设备自身的相关信息。
广播包有两种: 广播包 (Advertising Data)和 响应包 (Scan Response),其中广播包是每个设备必须广播的,而响应包是可选的。 数据包的格式如下图所示(图片来自官方 Spec):
每个包都是 31 字节,数据包中分为有效数据(significant)和无效数据(non-significant)两部分。
有效数据部分 :包含若干个广播数据单元,称为 AD Structure 。如图中所示,AD Structure 的组成是:第一个字节是长度值 Len ,表示接下来的 Len 个字节是数据部分。数据部分的第一个字节表示数据的类型 AD Type ,剩下的 Len - 1 个字节是真正的数据 AD data 。其中 AD type 非常关键,决定了 AD Data 的数据代表的是什么和怎么解析,这个在后面会详细讲;
无效数据部分 :因为广播包的长度必须是 31 个 byte,如果有效数据部分不到 31 自己,剩下的就用 0 补全。这部分的数据是无效的,解释的时候,忽略即可。
广播数据格式
所有的 AD type 的定义在文档
中。 AD Type 包括如下类型:
Flags: TYPE = 0x01。这个数据用来标识设备 LE 物理连接的功能。DATA 是 0 到多个字节的 Flag 值,每个 bit 上用 0 或者 1 来表示是否为 True。如果有任何一个 bit 不为 0,并且广播包是可连接的,就必须包含此数据。各 bit 的定义如下:
bit 0: LE 有限发现模式
bit 1: LE 普通发现模式
bit 2: 不支持 BR/EDR
bit 3: 对 Same Device Capable(Controller) 同时支持 BLE 和 BR/EDR
bit 4: 对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
bit 5..7: 预留
Service UUID: 广播数据中一般都会把设备支持的 GATT Service 广播出来,用来告诉外面本设备所支持的 Service。有三种类型的 UUID:16 bit, 32bit, 128 bit。广播中,每种类型类型有有两个类别:完整和非完整的。这样就共有 6 种 AD Type。
非完整的 16 bit UUID 列表: TYPE = 0x02;
完整的 16 bit UUID 列表: TYPE = 0x03;
非完整的 32 bit UUID 列表: TYPE = 0x04;
完整的 32 bit UUID 列表: TYPE = 0x05;
非完整的 128 bit UUID 列表: TYPE = 0x06;
完整的 128 bit UUID 列表: TYPE = 0x07;
Local Name: 设备名字,DATA 是名字的字符串。 Local Name 可以是设备的全名,也可以是设备名字的缩写,其中缩写必须是全名的前面的若干字符。
设备全名: TYPE = 0x08
设备简称: TYPE = 0x09
TX Power Level: TYPE = 0x0A,表示设备发送广播包的信号强度。DATA 部分是一个字节,表示 -127 到 + 127 dBm。
带外安全管理(Security Manager Out of Band):TYPE = 0x11。DATA 也是 Flag,每个 bit 表示一个功能:
bit 0: OOB Flag,0 表示没有 OOB 数据,1 表示有
bit 1: 支持 LE
bit 2: 对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
bit 3: 地址类型,0 表示公开地址,1 表示随机地址
外设(Slave)连接间隔范围:TYPE = 0x12。数据中定义了 Slave 最大和最小连接间隔,数据包含 4 个字节:
前 2 字节:定义最小连接间隔,取值范围:0x0006 ~ 0x0C80,而 0xFFFF 表示未定义;
后 2 字节:定义最大连接间隔,同上,不过需要保证最大连接间隔大于或者等于最小连接间隔。
服务搜寻:外围设备可以要请中心设备提供相应的 Service。其数据定义和前面的 Service UUID 类似:
16 bit UUID 列表: TYPE = 0x14
32 bit UUID 列表: TYPE = 0x??
128 bit UUID 列表: TYPE = 0x15
Service Data: Service 对应的数据。
16 bit UUID Service: TYPE = 0x16, 前 2 字节是 UUID,后面是 Service 的数据;
32 bit UUID Service: TYPE = 0x??, 前 4 字节是 UUID,后面是 Service 的数据;
128 bit UUID Service: TYPE = 0x??, 前 16 字节是 UUID,后面是 Service 的数据;
公开目标地址:TYPE = 0x17,表示希望这个广播包被指定的目标设备处理,此设备绑定了公开地址,DATA 是目标地址列表,每个地址 6 字节。
随机目标地址:TYPE = 0x18,定义和前一个类似,表示希望这个广播包被指定的目标设备处理,此设备绑定了随机地址,DATA 是目标地址列表,每个地址 6 字节。
Appearance:TYPE = 0x19,DATA 是表示了设备的外观。
厂商自定义数据: TYPE = 0xFF,厂商自定义的数据中,前两个字节表示厂商 ID,剩下的是厂商自己按照需求添加,里面的数据内容自己定义。
还有一些其他的数据,我这里就不一一列举了,有需要的可以从这个文档查阅
广播数据解析
在 Android 可以使用 BluetoothAdapter 来发起扫描。基本用法如下:
BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
// 解析广播数据
parseAdvData(scanRecord);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
// 开始扫描设备
mBluetoothAdapter.startLeScan(mLeScanCallback);
// 停止扫描设备
mBluetoothAdapter.stopLeScan(mLeScanCallback);
当扫描到设备以后,就会回调 onLeScan(...) ,这里的参数 scanRecord 就是广播数据,这里同时包含 广播数据 和 扫描相应数据 (如果有的话),所以长度一般就是 62 字节。
根据上一节的广播数据格式的说明,可以实现解析广播数据函数 parseAdvData(scanRecord); ,下面的代码实现了解析几个我关心的数据:
public static ParsedAd parseData(byte[] adv_data) {
ParsedAd parsedAd = new ParsedAd();
ByteBuffer buffer = ByteBuffer.wrap(adv_data).order(ByteOrder.LITTLE_ENDIAN);
while (buffer.remaining() & 2) {
byte length = buffer.get();
if (length == 0)
byte type = buffer.get();
length -= 1;
switch (type) {
case 0x01: // Flags
parsedAd.flags = buffer.get();
case 0x02: // Partial list of 16-bit UUIDs
case 0x03: // Complete list of 16-bit UUIDs
case 0x14: // List of 16-bit Service Solicitation UUIDs
while (length &= 2) {
parsedAd.uuids.add(UUID.fromString(String.format(
&%08x-00-fb&, buffer.getShort())));
length -= 2;
case 0x04: // Partial list of 32 bit service UUIDs
case 0x05: // Complete list of 32 bit service UUIDs
while (length &= 4) {
parsedAd.uuids.add(UUID.fromString(String.format(
&%08x-00-fb&, buffer.getInt())));
length -= 4;
case 0x06: // Partial list of 128-bit UUIDs
case 0x07: // Complete list of 128-bit UUIDs
case 0x15: // List of 128-bit Service Solicitation UUIDs
while (length &= 16) {
long lsb = buffer.getLong();
long msb = buffer.getLong();
parsedAd.uuids.add(new UUID(msb, lsb));
length -= 16;
case 0x08: // Short local device name
case 0x09: // Complete local device name
byte sb[] = new byte[length];
buffer.get(sb, 0, length);
length = 0;
parsedAd.localName = new String(sb).trim();
case (byte) 0xFF: // Manufacturer Specific Data
parsedAd.manufacturer = buffer.getShort();
length -= 2;
default: // skip
if (length & 0) {
buffer.position(buffer.position() + length);
return parsedAd;
其中 ParsedAd 是自定义的简单 Java 对象,用来保存解析后的数据。这里只是解析了我关心的数据,你也可以根据前面的说明,解析更多的内容。
参考资料:
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致android ble 收发数据
网上的Bluetooth BLE Demo都能实现BLE属性的读取,但写这块,我遇到的问题是:这些Demo都无法对BLE设备进行写数据,即无法修改BLE设备下的属性,如Major ,Minor,UUID等属性.这些Demo都是通过characteristic.setValue(byte[]),然后调用BluetoothGatt对象 mBluetoothGatt.writeC ...
本文介绍Android ble 蓝牙4.0,也就是说API level &= 18,且支持蓝牙4.0的手机才可以使用,如果手机系统版本API level & 18,也是用不了蓝牙4.0的哦. 首先发一下官方的demo,有兴趣的可以过去看看:/guide/topics/connectivity/bluetoo ...
本文介绍Android ble 蓝牙4.0,也就是说API level &= 18,且支持蓝牙4.0的手机才可以使用,如果手机系统版本API level & 18,也是用不了蓝牙4.0的哦.
首先发一下官方的demo,有兴趣的可以过去看看:/guide/topics/connectivity/bluet ...
一.BLE和BT区别 其实我知道许多程序员不太喜欢阅读除了代码以外的文档,因为有时这些过于冗长的文档对编程并没有更多的好处,有了协议,接口,demo差不多很多人就能写出很好质量的代码了.但其实更深入的编程是少了阅读的,阅读文档可以解决很多编程中遇到的困难,比如在大数据大流量情况下,很多正常的程序会表现出不可靠的一面,这已经不是够编程能解决的了,硬件的配置,服务器带宽,使用的 ...
Android4.3 规范了BLE的API,但是直到目前的4.4,还有些功能不完善. 在BLE协议中,有两个角色,周边(Periphery)和中央(Central):周边是数据提供者,中央是数据使用/处理者:在iOS SDK里面,可以把一个iOS设备作为一个周边,也可以作为一个中央:但是在Android SDK里面,直到目前最新的Android4.4.2,Android手机 ...
本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 最近穿戴设备发展得很火,把相关技术也带旺了,其中一项是BLE(Bluetooth Low Energy).BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的低功耗特点,因此普遍用于穿戴设备.Android ...
今天看了一下android 蓝牙BLE 记录一下 原创作者连接: http://blog.csdn.net/hellogv/
最近穿戴设备发展得很火,把相关技术也带旺了,其中一项是BLE(Bluetooth Low Energy).BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的低功耗特点 ...
原文网址://%E8%93%9D%E7%89%%94%E2%80%94android-ble%E5%BC%80%E5%8F%91%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E7%BF%BB%E8%AF%91/ 安卓4.3(API 18)为BLE的核心功能提供平台支持 ...
1.概述 公司做了两个蓝牙4.0的app项目,对于蓝牙4.0 ble的理解也从阅读官方的代码,各种代码到有自己的见解. 很多手机早前就有蓝牙4.0,但是android官方是在sdk 4.3以上才开始支持蓝牙4.0 一般app开发的现在都建议用户自行升级到android系统到4.3以上 才能使用开发的app.早前三星,摩托罗拉,lg,博通是有提供自己的蓝牙库的,因为大家使用的 ...
关键术语和概念 Generic Attribute Profile(GATT)-GATT配置文件是一个通用规范,用于在BLE链路上发送和接收被称为&属性&的数据块.目前所有的BLE应用都基于GATT. 蓝牙SIG规定了许多低功耗设备的配置文件.配置文件是设备如何在特定的应用程序中工作的规格说明.注意一个设备可以实现多个配置文件.例如,一个设备可能包括心率 ...
Android4.3 规范了BLE的API,但是直到目前的4.4,还有些功能不完善. 在BLE协议中,有两个角色,周边(Periphery)和中央(Central):周边是数据提供者,中央是数据使用/处理者:在iOS SDK里面,可以把一个iOS设备作为一个周边,也可以作为一个中央:但是在Android SDK里面,直到目前最新的Android4.4.2,Android手机 ...
这种方式应该是用起来最简单的Android读写外部数据的方法了.他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单. 透明的方式来保存一些用户个性化设置的字体.颜色.位置等参数信息.一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以 通过Preferences来保存,而程序员不需要知道它到 ...
android 读取json数据(遍历JSONObject和JSONArray) public String getJson(){ String jsonString = &{\&FLAG\&:\&flag\&,\&MESSAGE\&:\&SUCCESS\&,\&name\& ...
1.Android中通过SQLite数据库引擎来实现结构化数据存储.SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备,提供的是一种高效的数据库引擎. 2.Android提供了创建和使用SQLite数据库的API.SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供更简洁的功能. 3.
Android清除本地数据缓存代码案例 直接上代码: /* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */ package com.test.DataC import java.io.F import android ...
Android清除本地数据缓存代码案例 直接上代码: /* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */ package com.test.DataC import java.io.F import android ...
欢迎转载,但请保留文章原始出处→_→
生命壹号:/smyhvae/ 文章来源:/smyhvae/p/4063452.html 联系方式:
[正文] 文章回顾: Android网络之数据解析-SAX方式解析XML数据 一.Json数据的介绍 ...
欢迎转载,但请保留文章原始出处→_→
生命壹号:/smyhvae/ 文章来源:/smyhvae/p/4044170.html 联系方式:
[系列]Android系列之网络:(持续更新) Android系列之网络(一)-使用HttpCli ...
参考 Android五种数据传递方法汇总
我的STM32F4 Discovery上边有一个加速度传感器LIS302DL.在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态.当开发板倾斜时候,处于最上边的LED点亮,其他LED不亮.同时,用MicroUSB数据线将开发板连接电脑时,开发板就会虚拟成一个鼠标.倾斜开发板时,鼠标指针会向倾斜的方向移动.归根结底,就是牛B的ST工程师 ...}

我要回帖

更多关于 自定义tabbleviewcell 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信