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

2019-09-28 03:52栏目:网络系统
TAG:

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

Daydream

图片 1

android.bluttooth

1、前言

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

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

图片 2

Virtual Reality High Performance

提供管理Bluetooth作用的类,举个例子对设施的扫视,连接装置,和保管设施之间的传输数据。BluetoothAPI帮衬杰出蓝牙5.0和低功耗蓝牙5.0。

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.

图片 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

关于很多任何的杰出蓝牙5.0消息。能够看蓝牙( Bluetooth® )( Bluetooth® )指南。有关比比较多其余的低功耗蓝牙( 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 V途睿欧平台应用要求:如何打算VRubicon应用

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:蓝牙5.0( Bluetooth® )Profile 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:那一个类提供调节蓝牙5.0A2DP profile的公共APIs

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

BluetoothClass:代表一个蓝牙( Bluetooth® )( 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:代表二个BluetoothGATT Service.

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

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

BluetoothHealth:蓝牙Health Profile的公共API.

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

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

BluetoothManager:用来获取BluetoothAdapter的实例的经营管理者,举行宏观的蓝牙5.0管理

BluetoothServerSocket:贰个监听蓝牙( Bluetooth® )的socket

BluetoothSocket:二个已三回九转或正在连接的蓝牙5.0socket.

 

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的V福特Explorer图形优化

 

EGL

EGL10

Tracer for OpenGL ES

版权声明:本文由澳门新葡亰平台游戏发布于网络系统,转载请注明出处:初步了解Android,开发资源汇总