初步了解Android,开发资源汇总

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

Daydream

图片 1

android.bluttooth

1、前言

上大器晚成篇讲了怎么编写翻译安说大话lueZ-5,本篇首要在于玩BlueZ,用命令行去操作BLE设备:

  • [BlueZ] 1、Download install and use the BlueZ and hcitool on PI
    3B+

图片 2

Virtual
Reality High
Performance

提供管理Bluetooth功效的类,举个例子对设施的扫视,连接装置,和保管设施之间的传输数据。蓝牙( Bluetooth® 卡塔尔国API扶助优质蓝牙5.0和低功耗Bluetooth。

2、gatttool —— 老工具趟坑

刚带头接着 Get Started with Bluetooth Low Energy on
Linux
操作gatttool,发掘坑太多(主因是工具老了卡塔 尔(英语:State of Qatar):

采用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.

图片 3

googlevr

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.

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对应的劳务如下图:

图片 4

大家选取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

图片 5

Google
VR for Android

至于比比较多其余的经文蓝牙( Bluetooth® 卡塔尔国音讯。能够看Bluetooth( Bluetooth® 卡塔 尔(英语:State of Qatar)指南。有关相当多任何的低耗能蓝牙( Bluetooth® 卡塔尔的音讯,能够看BLE指南。

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

图片 6

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

GVR SDK
and NDK Release
Notes

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

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

Bluetooth APIs 能够使得应用具备下边功效:

com.google.vr.vrcore

1.对于其它的蓝牙5.0设备的扫视(包涵BLE设备)

com.google.android.vr.home

2.为配没有错蓝牙( Bluetooth® 卡塔尔设备查询本地蓝牙5.0适配器

Google
Inc. Daydream
(Daydream)

3.建立RFCOMM channels/sockets.

Google
Inc. Google VR Services
(Daydream)

4.三番两次在其余装置上钦赐的sockets

What is
Google
Daydream

5.与其它设备之间数据传输

Daydream Performance
HUD

6.与BLE设备调换。比如相似传感器,心率监视器,强健体魄设备,等等

Daydream
Controller手柄数据的分析

7.作为GATTclient或GATT服务端

How do I
fix my Daydream
controller

应用那么些APIs来收尾蓝牙( Bluetooth® 卡塔 尔(阿拉伯语:قطر‎之间的调换,二个应用程序必需证明BLUETOOTH权限。对于有个别极其的法力。如恳求设备发掘,也一定要BLUETOOTH_ADMIN权限。

Google
Daydream Controller
Teardown

提醒:不是全方位的Android设备都提供了Bluetooth作用。

Daydream
controller : Comprehensive
guide

The Bluetooth APIs let applications:

Use the
Daydream View controller and
headset

  • Scan for other Bluetooth devices (including BLE devices).
  • Query the local Bluetooth adapter for paired Bluetooth devices.
  • Establish RFCOMM channels/sockets.
  • Connect to specified sockets on other devices.
  • Transfer data to and from other devices.
  • Communicate with BLE devices, such as proximity sensors, heart rate
    monitors, fitness devices, and so on.
  • Act as a GATT client or a GATT server (BLE).

谷歌(Google卡塔尔国Daydream
VGL450平台应用须要:如何设计V奥德赛应用

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.

 

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

Algorithm

接口:

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

BluetoothProfile:Bluetooth
Profiles的公共APIs

BluetoothProfile.ServiceListener:BluetoothProfile
IPC client与service的三回九转和断开时的三个布告接口

Conversion
Quaternion to
Euler

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. 

Conversion
Euler to
Quaternion

类:

BluetoothA2dp:那一个类提供调控BluetoothA2DP profile的公共APIs

BluetoothAdapter:代表本地设备的蓝牙( Bluetooth® 卡塔尔国( Bluetooth® 卡塔尔adapter.
BluetoothAssignedNumbers:蓝牙5.0分配号码

BluetoothClass:代表四个蓝牙( Bluetooth® 卡塔尔类。它形容陈述了道具的貌似特征(characteristics)和力量(capabilities)

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

BluetoothClass.Device.Major:定义全体至关心珍视要配备类的常量

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

BluetoothDevice:代表三个长途蓝牙( Bluetooth® 卡塔 尔(阿拉伯语:قطر‎设备

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

BluetoothGatt:蓝牙GATT
Profile的公共APIs

BluetoothGattCallback:这几个抽象类用于贯彻蓝牙5.0Gatt回调

BluetoothGattCharacteristic:代表一个BluetoothGATT 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® 卡塔 尔(阿拉伯语:قطر‎( Bluetooth® 卡塔尔国GATT Profileserver角色的公共APIs.

BluetoothGattServerCallback:这么些抽象类用于贯彻BluetoothGattServer回调.

BluetoothGattService:代表多个蓝牙( Bluetooth® 卡塔 尔(阿拉伯语:قطر‎GATT Service.

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

BluetoothHeadset:调控蓝牙5.0耳麦(Headset)服务的公共API.

BluetoothHealth:蓝牙Health
Profile的公共API.

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

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

BluetoothManager:用来赢得BluetoothAdapter的实例的领导者,实行宏观的蓝牙( Bluetooth® 卡塔 尔(英语:State of Qatar)管理

BluetoothServerSocket:二个监听蓝牙( Bluetooth® 卡塔尔国的socket

BluetoothSocket:二个已接二连三或正在连接的Bluetoothsocket.

 

ATW

Timewarp

Asynchronous
timewarp

How Does
Time Warping Work

Difference_between_ATW_ASW_and_Reprojection 

 

Bluetooth

Bluetooth Core
Specification

HID-over-GATT

NordicSemiconductor

Dialog-semiconductor

SmartBond™
DA14681

Android
Bluetooth Low
Energy

Nordic SDK and
Documentation

Calculate
throughput for a BLE
link

Introduction to
Bluetooth Low
Energy

Android
Lollipop: Bluetooth LE
Matures

Bluetooth Low
Energy vs. Classic
Bluetooth

Getting
Started with Bluetooth Low
Energy

Maximizing BLE
Throughput on iOS and
Android

How
different BLE packet types influence
throughput

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

FTS4BT™
Bluetooth® Protocol Analyzer and Packet
Sniffer

CPAS-11(Frontline_16.10.12321.12610)

 

Latency

Front
Buffer
Rendering

Reducing
latency in mobile VR by using single buffered strip
rendering

The
importance of fine-grained GPU preemption support for
VR

 

Tools

dotPeek

 

Touch

IQS525-B000

 

Unity

Unity
Editor and Android Runtime for
Daydream

Unity
Download

GVR-Unity-SDK

Unity3d
Quaternion

Unity优化能力

四元数(Quaternion)和旋转

 

Qualcomm

传说骁龙
V哈弗 SDK的VXC90图形优化

 

EGL

EGL10

Tracer
for OpenGL
ES

发表评论

电子邮件地址不会被公开。 必填项已用*标注