美高梅在线登录网址蓝牙( Bluetooth® )---伊始驾驭Android Bluetooth4.0

1、前言

上一篇讲了怎么编译安装XlueZ-5,本篇重要在于玩BlueZ,用命令行去操作BLE设备:

美高梅在线登录网址 1

How do I fix my Daydream controller

Provides classes that manage Bluetooth functionality, such as scanning for devices, connecting with devices, and managing data transfer between devices. The Bluetooth API supports both "Classic Bluetooth" and Bluetooth Low Energy.

星期三, 05. 九月 2018 02:03上午 - beautifulzzzz

Unity优化手艺

2.为配成对的Bluetooth设备查询本地蓝牙( Bluetooth® )适配器

美高梅在线登录网址 2

Use the Daydream View controller and headset

android.bluttooth

LINKS

[1].Cannot connect to BLE device on Raspberry Pi
[2].Invalid file descriptor gatttool of bluez 5.32
[3].Get Started with Bluetooth Low Energy on Linux
[4].Reverse Engineering a Bluetooth Low Energy Light Bulb
[5].Doing Bluetooth Low Energy on Linux
[6].Tutorial: BLE Pairing the Raspberry Pi 3 Model B with Hexiwear

美高梅在线登录网址 3

@beautifulzzzz
智能硬件、物联网,热爱技术,关注产品
博客:http://blog.beautifulzzzz.com
园友交流群:414948975

Google Inc. Daydream (Daydream)

唤醒:不是一切的Android设备都提供了蓝牙( Bluetooth® )( Bluetooth® )功效。

2、gatttool —— 老工具趟坑

刚开端跟着 Get Started with Bluetooth Low Energy on Linux 操作gatttool,发现坑太多(主要原因是工具老了):

采用sudo gatttool -b 4D:69:98:0E:91:5E -I去连接
意识会报错:Error: connect error: Connection refused (111)
末尾参谋LINK-11发掘要求加random选项([\#1](https://stackoverflow.com/questions/32947807/cannot-connect-to-ble-device-on-raspberry-pi))

➜  ~  sudo gatttool -b 4D:69:98:0E:91:5E -I
[4D:69:98:0E:91:5E][LE]> connect
Attempting to connect to 4D:69:98:0E:91:5E
Error: connect error: Connection refused (111)
[4D:69:98:0E:91:5E][LE]> exit
➜  ~  sudo gatttool  -t random  -b 4D:69:98:0E:91:5E -I
[4D:69:98:0E:91:5E][LE]> connect
Attempting to connect to 4D:69:98:0E:91:5E
Connection successful
[4D:69:98:0E:91:5E][LE]> 
(gatttool:3104): GLib-WARNING **: Invalid file descriptor.

过三回会10S自动断开,英特网说那么些工具老了,不建议用了([\#2](https://www.spinics.net/lists/linux-bluetooth/msg67617.html)):

There are new tools to use with GATT, bluetoothctl/bluetoothd is the preferred since with that you have GAP, etc, 
but if want to use a stand alone tool then I suggest you use btgatt-client.

美高梅在线登录网址 4

Daydream Performance HUD

4.三番两次在其余设备上点名的sockets

3、bluetoothctl——NB的新工具

一声令下行进入bluetoothctl操作情状([\#6](https://mcuoneclipse.com/2016/12/19/tutorial-ble-pairing-the-raspberry-pi-3-model-b-with-hexiwear/))

bluetoothctl

自家在四弟大上用lightblue模拟一个BLE设备ty_prod,之后对其service进行改换,调用scan on实行检索依旧老的,
最后发掘要先用remove移除在此之前的设备,之后再scan就能够冒出[NEW] Device 72:3B:E1:81:4E:4F ty_prod设备
注: 用lightblue模拟的道具的MAC不是一定的
注: 笔者开采在lightblue中不管怎么模拟BLE设备,一旦被连上寻觅到的service都以IPone的

[bluetooth]# devices
Device 28:ED:6A:A0:26:B7 ty_prod
Device 58:71:33:00:00:24 Bluetooth Keyboard
Device 00:1A:7D:DA:71:0A SHEN-PC
Device 94:87:E0:B3:AC:6F Mi Phone
[bluetooth]# remove 28:ED:6A:A0:26:B7 
...
[bluetooth]# scan on
Discovery started
[NEW] Device 72:3B:E1:81:4E:4F ty_prod
[bluetooth]# scan off
...
Discovery stopped
[bluetooth]# connect 72:3B:E1:81:4E:4F
Attempting to connect to 72:3B:E1:81:4E:4F
[CHG] Device 72:3B:E1:81:4E:4F Connected: yes
Connection successful
[ty_prod]

几乎就用三星手提式有线电话机自带的劳务做测验了~

[ty_prod]# info
Device 28:ED:6A:A0:26:B7 (public)
    Name: tuya_mdev_test
    Alias: tuya_mdev_test
    Appearance: 0x0040
    Icon: phone
    Paired: yes
    Trusted: no
    Blocked: no
    Connected: yes
    LegacyPairing: no
    UUID: Fax                       (00001111-0000-1000-8000-00805f9b34fb)
    UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
    UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
    UUID: Current Time Service      (00001805-0000-1000-8000-00805f9b34fb)
    UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
    UUID: Battery Service           (0000180f-0000-1000-8000-00805f9b34fb)
    UUID: Vendor specific           (7905f431-b5ce-4e99-a40f-4b1e122d00d0)
    UUID: Vendor specific           (89d3502b-0f36-433a-8ef4-c502ad55f8dc)
    UUID: Vendor specific           (9fa480e0-4967-4542-9390-d343dc5d04ae)
    UUID: Vendor specific           (d0611e78-bbb4-4591-a5f8-487910ae4366)
[CHG] Device 28:ED:6A:A0:26:B7 ServicesResolved: no
[CHG] Device 28:ED:6A:A0:26:B7 Connected: no

大家用Current Time Service,列出全部attributes操作如下:

[tuya_mdev_test]# menu gatt
[tuya_mdev_test]# list-attributes 28:ED:6A:A0:26:B7
...
Primary Service
    /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041
    00001805-0000-1000-8000-00805f9b34fb
    Current Time Service
Characteristic
    /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0045
    00002a0f-0000-1000-8000-00805f9b34fb
    Local Time Information
Characteristic
    /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042
    00002a2b-0000-1000-8000-00805f9b34fb
    Current Time
Descriptor
    /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042/desc0044
    00002902-0000-1000-8000-00805f9b34fb
    Client Characteristic Configuration
...

上面Current Time Service对应的劳务如下图:

美高梅在线登录网址 5

我们选拔Current Time举行操作UUID:0x2A2B

[ty_prod]# select-attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042
[tuya_mdev_test:/service0041/char0042]# read
Attempting to read /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042
[CHG] Attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042 Value:
  e2 07 09 05 01 24 11 03 f1 02                    .....$....      
  e2 07 09 05 01 24 11 03 f1 02                    .....$.... 
[tuya_mdev_test:/service0041/char0042]# attribute-info
Characteristic - Current Time
    UUID: 00002a2b-0000-1000-8000-00805f9b34fb
    Service: /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041
    Value:
  e2 07 09 05 01 2e 01 03 f5 02                    ..........      
    Notifying: yes
    Flags: read
    Flags: notify

读出结果差不离意思应该是:2018-9/5-1:36:17 周三

读取一下0x180A的Device Information:

[tuya_mdev_test:/service0006/char0007]# select-attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a
[tuya_mdev_test:/service0047/char004a]# attribute-info
Characteristic - Model Number String
    UUID: 00002a24-0000-1000-8000-00805f9b34fb
    Service: /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047
    Flags: read
[tuya_mdev_test:/service0047/char004a]# read
Attempting to read /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a
[CHG] Attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a Value:
  69 50 68 6f 6e 65 36 2c 32                       iPhone6,2       
  69 50 68 6f 6e 65 36 2c 32                       iPhone6,2    

自然写、使能notify也很简短,看help就能够。最终断开连接、并脱离!!!

[tuya_mdev_test:/service0047/char004a]# disconnect 28:ED:6A:A0:26:B7
Attempting to disconnect from 28:ED:6A:A0:26:B7
[CHG] Device 28:ED:6A:A0:26:B7 ServicesResolved: no
Successful disconnected
[CHG] Device 28:ED:6A:A0:26:B7 Connected: no
[bluetooth]# quit

美高梅在线登录网址 6

四元数(Quaternion)和旋转

The Bluetooth APIs let applications:

 

6.与BLE设备调换。譬喻类似传感器,心率监视器,健美设备,等等

 

提供管理蓝牙( Bluetooth® )功用的类,比方对器材的扫视,连接装置,和治本设施之间的传输数据。蓝牙5.0API扶助出色Bluetooth和低功耗蓝牙( Bluetooth® )。

dotPeek

Note: Not all Android-powered devices provide Bluetooth functionality.

Android Bluetooth Low Energy

Analysis of Latency Performance of Bluetooth Low Energy (BLE) Networks

com.google.android.vr.home

采纳这个APIs来终结蓝牙( Bluetooth® )之间的调换,多少个应用程序必需证明BLUETOOTH权力。对于部特别加的效应。如须要设备发现,也必得BLUETOOTH_ADMIN权限。

Conversion Quaternion to Euler

5.与其他器材之间数据传输

HID-over-GATT

类:

BluetoothA2dp:那几个类提供调整Bluetooth( Bluetooth® )A2DP profile的公共APIs

BluetoothAdapter:代表当地设备的蓝牙adapter.
BluetoothAssignedNumbers:蓝牙5.0分配号码

BluetoothClass:代表五个蓝牙5.0( Bluetooth® )类。它形容汇报了设备的相似特征(characteristics)和力量(capabilities)

BluetoothClass.Device:定义全体设备类的常量

BluetoothClass.Device.Major:定义全部首要器械类的常量

BluetoothClass.Service:定义全体服务类的常量

BluetoothDevice:代表三个长途Bluetooth设备

=============================================================================================

BluetoothGatt:蓝牙GATT Profile的公共APIs

BluetoothGattCallback:那一个抽象类用于落到实处BluetoothGatt回调

BluetoothGattCharacteristic:代表多少个蓝牙( Bluetooth® )GATT Characteristic.

                                              四个GATT Characteristic是用来布局二个GATT service,BluetoothGattService的主导数据成分

BluetoothGattDescriptor:代表贰个BluetoothGATT Descriptor.

                                           GATT Descriptor满含二个GATT characteristic,BluetoothGattCharacteristic的附加音信和属性.

Classes


BluetoothA2dp This class provides the public APIs to control the Bluetooth A2DP profile. 
BluetoothAdapter Represents the local device Bluetooth adapter. 
BluetoothAssignedNumbers Bluetooth Assigned Numbers. 
BluetoothClass Represents a Bluetooth class, which describes general characteristics and capabilities of a device. 
BluetoothClass.Device Defines all device class constants. 
BluetoothClass.Device.Major Defines all major device class constants. 
BluetoothClass.Service Defines all service class constants. 
BluetoothDevice Represents a remote Bluetooth device. 
BluetoothGatt Public API for the Bluetooth GATT Profile. 
BluetoothGattCallback This abstract class is used to implement BluetoothGatt callbacks. 
BluetoothGattCharacteristic Represents a Bluetooth GATT Characteristic

A GATT characteristic is a basic data element used to construct a GATT service,BluetoothGattService

BluetoothGattDescriptor Represents a Bluetooth GATT Descriptor

GATT Descriptors contain additional information and attributes of a GATT characteristic,BluetoothGattCharacteristic

BluetoothGattServer Public API for the Bluetooth GATT Profile server role. 
BluetoothGattServerCallback This abstract class is used to implement BluetoothGattServer callbacks. 
BluetoothGattService Represents a Bluetooth GATT Service

Gatt Service contains a collection of BluetoothGattCharacteristic, as well as referenced services. 

BluetoothHeadset Public API for controlling the Bluetooth Headset Service. 
BluetoothHealth Public API for Bluetooth Health Profile. 
BluetoothHealthAppConfiguration The Bluetooth Health Application Configuration that is used in conjunction with the BluetoothHealthclass. 
BluetoothHealthCallback This abstract class is used to implement BluetoothHealth callbacks. 
BluetoothManager High level manager used to obtain an instance of an BluetoothAdapter and to conduct overall Bluetooth Management. 
BluetoothServerSocket A listening Bluetooth socket. 
BluetoothSocket A connected or connecting Bluetooth socket. 

BluetoothGattServer:蓝牙( Bluetooth® )GATT Profileserver剧中人物的公共APIs.

BluetoothGattServerCallback:这些抽象类用于落到实处BluetoothGattServer回调.

BluetoothGattService:代表三个蓝牙( Bluetooth® )GATT Service.

================================================================================

BluetoothHeadset:调整Bluetooth耳麦(Headset)服务的公共API.

BluetoothHealth:蓝牙Health Profile的公共API.

BluetoothHealthAppConfiguration:The Bluetooth Health Application Configuration(配置)用来与BluetoothHealth类结合.

BluetoothHealthCallback:用于落到实处BluetoothHealth回调的抽象类

BluetoothManager:用来赢得BluetoothAdapter美高梅在线登录网址,的实例的领导者,举办完善的蓝牙5.0管理

BluetoothServerSocket:八个监听蓝牙5.0的socket

BluetoothSocket:贰个已接连或正在连接的蓝牙( Bluetooth® )socket.

EGL10

www.4688.com,Interfaces


BluetoothAdapter.LeScanCallback Callback interface used to deliver LE scan results. 
BluetoothProfile Public APIs for the Bluetooth Profiles. 
BluetoothProfile.ServiceListener An interface for notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service. 

Touch

7.作为GATTclient或GATT服务端

GVR SDK and NDK Release Notes

接口:

BluetoothAdapter.LeScanCallback :用来提供LE扫描结果的回调接口

BluetoothProfile:Bluetooth Profiles的公共APIs

BluetoothProfile.ServiceListener:蓝牙5.0Profile IPC client与service的连接和断开时的一个通报接口

-

Daydream

To perform Bluetooth communication using these APIs, an application must declare the BLUETOOTH permission. Some additional functionality, such as requesting device discovery, also requires the BLUETOOTH_ADMIN permission.

Tools

For more information about Classic Bluetooth, see the Bluetooth guide. For more information about Bluetooth Low Energy, see the Bluetooth Low Energy (BLE) guide.

Calculate throughput for a BLE link

至于相当多别样的精华蓝牙( Bluetooth® )信息。能够看蓝牙( Bluetooth® )( Bluetooth® )指南。有关比相当多其余的低功耗蓝牙5.0的信息,能够看BLE指南。

Nordic SDK and Documentation

1.对此别的的蓝牙( Bluetooth® )设备的扫描(满含BLE设备)

美高梅4858官方网站,Unity Download

蓝牙5.0 APIs 能够使得应用具有上面功能:

http://www.apkmirror.com/apk/google-inc

3.建立RFCOMM channels/sockets.

CPAS-11(Frontline_16.10.12321.12610)