The purpose of this page is to:
Oct 09, 2016 Download OpenMobile for free. A cross platform, modular, C# driven, mobile computing front end. A cross platform, modular, C# driven, mobile computing front end.
- Introduce the Bluetooth technology.
- Document the Linux Bluetooth stack BlueZ.
- Document Bluetooth on Tizen Common.
- Jan 13, 2015 It was in-fact an Android application that was installed using Open Mobile’s ACL Technology, which has tens of thousands of Android Apps as part of its catalogue. Having thousands of Android applications at launch will certainly help attract users to the Tizen Smartphone platform whilst native and HTML5 Tizen apps are being developed.
- Open the Tizen app store on your mobile device. Search for the app called ACL for Tizen. Download and install this on your device. Once it is installed it will need to be enabled in order to use this.
- 1About Bluetooth
- 2BlueZ
- 2.3BlueZ CLI clients
- 2.4BlueZ test tools
- 2.6Using Bluetooth
- 2.6.2A2DP
- 2.6.3HFP
- 2.6.4AVRCP
- 2.6.5HID
- 2.6.5.1Connecting a mouse or a keyboard
- 3Bluetooth on Tizen
Bluetooth is a wireless technology standard for exchanging data over short distances.
- Official Bluetooth website: https://www.bluetooth.org
- Bluetooth specifications download page: https://www.bluetooth.org/en-us/specification/adopted-specifications
- Wikipedia page on Bluetooth: https://en.wikipedia.org/wiki/Bluetooth
Profiles
The Bluetooth technology works with profiles. Profiles define standards to deliver a large choice of services. Profiles use Bluetooth protocols and some profiles even require other profiles.
- Wikipedia page on Bluetooth profiles: https://en.wikipedia.org/wiki/Bluetooth_profile
BlueZ is the name of the official Bluetooth stack on Linux. It implements the Bluetooth 4.0 Core specification and supports a large choice of profiles (see the Supported profiles section for a complete list) .
BlueZ official website: bluez.org
Bluetooth agent
Bluetooth connections are generally managed through a Bluetooth agent whose role is to automatically configure and chose the right options to manage Bluetooth connections leaving the user the tasks to chose the devices to connect/disconnect to and enter PIN codes.
The CLI client bluetoothctl come with its own agent but can also use a different one. BlueZ also provides an external Bluetooth agent called simple-agent.
Supported profiles and protocols
Here is a list of all existing profiles and protocols with the ones supported in BlueZ. Note that you can find the complete, updated list of supported profiles and their versions in the file doc/supported-features.txt from the bluez package. Also some profiles/roles depend on external components such as oFono or ConnMan.
Profile/Protocol | Links | Specification versions | Version in BlueZ |
3DSP 3D Synchronization Profile | 1.0 / 1.0.1 | ||
A2DP Advanced Audio Distribution Profile | 1.0 / 1.2 / 1.3 | 1.3 | |
AVCTP Audio/Video Control Transport Protocol | 1.0 / 1.2 / 1.3 / 1.4 | 1.3 | |
ANP Alert Notification Profile | 1.0 | ||
AVDTP Audio/Video Distribution Transport Protocol | 1.0 / 1.2 / 1.3 | 1.3 | |
AVRCP Audio/Video Remote Control Profile | 1.0 / 1.3 / 1.4 / 1.5 | 1.5 | |
BIP Basic Image Profile | 1.0 / 1.1 / 1.2 | ||
BLP Blood Pressure Profile | 1.0 | ||
BNEP Bluetooth Network Encapsulation Protocol | 1.0 | 1.0 | |
BPP Basic Printing Profile | 1.0 / 1.2 | ||
CPP Cycling Power Profile | 1.0 | ||
CSCP Cycling Speed and Cadence Profile | 1.0 | 1.0 | |
DI (DIP/DID) Device Identification Profile | 1.2 / 1.3 | 1.3 | |
DUN Dial-Up Network Profile | 1.1 / 1.2 | 1.1 | |
FMP Find Me Profile | 1.0 | ||
FTP File Transfer Profile | 1.1/ 1.2 / 1.3 | 1.2 | |
GAP | 2.0 / 2.1 / 3.0 / 4.0 / 4.1 / 4.2 | 4.2 | |
GATT Generic Attribute Profile | 2.0 / 2.1 / 3.0 / 4.0 / 4.1 / 4.2 | 4.2 | |
GAVDP (GAVDTP) Generic Audio/Video Distribution Profile | 1.0 / 1.2 / 1.3 | 1.2 | |
GLP Glucose Profile | 1.0 | ||
GNSS Global Navigation Satellite System Profile | 1.0 | ||
GOEP Generic Object Profile | 1.1 / 2.0 / 2.1 | 2.0 | |
HCRP Hard Copy Cable Replacement | 1.0 / 1.2 | 1.2 | |
HDP Health Device Profile | 1.0 / 1.1 | 1.0 | |
HFP Hands-Free Profile | 1.5 / 1.6 | 1.6 | |
HID Human Interface Device Profile | 1.0 / 1.1 | 1.1 | |
HOGP (HoG/HOG) HID Over GATT Profile | 1.0 | 1.0 | |
HRP Heart Rate profile | 1.0 | ||
HSP Headset Profile | 1.1 / 1.2 | 1.2 | |
HTP Health Thermometer Profile | 1.0 | 1.0 | |
IrDA IrDA Interoperability | 1.1 / 2.0 | ||
L2CAP Logical Link Control and Adaptation | 2.0 / 2.1 / 3.0 / 4.0 / 4.1 / 4.2 | 4.2 | |
LNP Location and Navigation Profile | 1.0 | ||
MAP MAP Message Access Profile | 1.0 / 1.1 / 1.2 | 1.0 | |
MCAP Multi-Channel Adaptation Protocol | 1.0 | 1.0 | |
MPS Multi Profile Specification | 1.0 | ||
OPP Object Push Profile | 1.1 / 1.2 | 1.2 | |
PAN Personal Area Network Profile | 1.0 | 1.0 | |
PASP Phone Alert Status Profile | 1.0 | ||
PBAP (PBA) Phone Book Access Profile | 1.0 / 1.1 / 1.1.1 / 1.2 | 1.1 | |
PXP Proximity Profile | 1.0 | 1.0 | |
RFCOMM | 1.1 / 1.2 | 1.1 | |
RSCP Running Speed and Cadence Profile | 1.0 | ||
ScPP Scan Parameters Profile | 1.0 | ||
SAP SIM Access Profile | 1.0 / 1.1 | 1.1 | |
SDAP Service Discovery Application Profile | 1.1 | 1.1 | |
SDP | 2.0 / 2.1 / 3.0 / 4.0 / 4.1 / 4.2 | 4.2 | |
SPP Serial Port Profile | 1.1 / 1.2 | 1.1 | |
SYNC (SYNCH) Synchronization Profile | 1.1 / 1.2 | 1.1 | |
TIP Time Profile | 1.0 | 1.0 | |
VDP Video Distribution Profile | 1.0 / 1.1 |
- List of adopted specifications (lists all profiles and protocols): https://www.bluetooth.org/en-us/specification/adopted-specifications
BlueZ CLI clients
The BlueZ project provides several CLI clients allowing users to use some of the supported profiles.
bluetooth-player
Allow the user to remotely control media players through he AVRCP profile.
Use example
bluetoothctl
CLI client to manage connections between devices. It includes a default bluetooth-agent.
Use example:
Due to https://bugs.tizen.org/jira/browse/TC-1511, 'power on' fails with 'org.bluez.Error.Blocked' and journalctl reports 'Operation not possible due to RF-kill'. As a workaround, install connman-test, run 'connmanctl' as root, and enter 'enable bluetooth'.
obexctl
CLI client for the FTP profile that manages file transfer and browsing over Bluetooth.
Usage :
BlueZ test tools
This section introduces some of the Bluetooth test tools from the BlueZ project. Those tools are mostly made for development and debugging purposes.
btmon
Bluetooth monitor - Display all HCI commands and events in a human readable format (and with color !). Can dump data in with the btsnoop format.
Note that this format is now supported by Wireshark (1.11.x). Also supported by development libpcap for realtime capturing.
hciconfig
hciconfig is used to configure Bluetooth devices.hciX is the name of a Bluetooth device installed in the system (ie., hci0).
Display Basic Info About Available Bluetooth Devices:
Display Info About A Specific Bluetooth Device:
UP or DOWN A Bluetooth Device Manually:
hcidump
Dump all HCI events and commands
Realize a dump file readable with Wireshark
hcitool
hcitool provides a simplified way of sending commands to the HCI device.
To launch an arbitrary command not present in the command list the command 'cmd' can be used.
For example:
sets the PIN type as fixed. For more details about the commands values, please refer to the Bluetooth Core Specification V.4.1 (https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=282159).
list-devices
List paired devices and information about them for all available Bluetooth controllers.
l2ping
Bluetooth layer 2 ping.
mpris-player
Tool to test AVRCP on the player/receiver side.
This tool uses the MPRIS specification which defines a standard way to control media players.
MPRIS specification: http://specifications.freedesktop.org/mpris-spec/latest/
sdptool
sdptool provides the interface for performing SDP queries on Bluetooth devices, and administering a local SDP database called sdpd.
Usage:
The search results can be viewed in three formats XML, RAW and TREE. It also provides option to add/del/get local service.
test-manager
Simple tool that displays available Bluetooth adapters.
External test tools
- Wireshark
- Network analyser with a GUI. Can analyze Bluetooth frames.
- You can open a capture file made with the command 'hcidump -R -w <dest_file>' or 'btmon' with Wireshark.
- Wireshark wiki page on Bluetooth: http://wiki.wireshark.org/Bluetooth
- Tshark
- CLI network analyser. Has the same features as Wireshark.
Using Bluetooth
Connecting devices
Open Mobile Acl For Tizen Freezers
The simplest ans easiest way to connect to a device on Tizen is to use the bluetoothctl tool.
A2DP
To connect to and use an A2DP device an A2DP sink or source is required. PulseAudio provides such features. Make sure that PulseAudio is running before attempting a Bluetooth connection otherwise you won't be advertising for A2DP support which will lead in a connection failure with some devices like Bluetooth headsets.
Note that PulseAudio requires the module 'module-bluetooth-discover' to be loaded in order to get A2DP working. You can either:
- Launch it at the same time as PulseAudio
- Load it while PulseAudio is working (not tested)
- Get it automatically loaded at PulseAudio launch by adding a few lines in its configuration file (called default.pa by default and generally located in /etc/pulse/). Note that those lines are already present in the default configuration file.
Tizen / Links
- https://bugs.tizen.org/jira/browse/TIVI-1081# sink
Reference / Links
- Audio streaming over Bluetooth: http://ols.fedoraproject.org/OLS/Reprints-2008/holtmann-reprint.pdf
- PulseAudio: http://www.freedesktop.org/wiki/Software/PulseAudio/
HFP
Please refer the to the article about Connecting to a Smartphone with Bluetooth and Making Phone Calls for step by step instructions and example usage on Bluetooth on devices with Tizen:Common.
On TIVI :
As App :
As Root :
Tizen / Links
- https://bugs.tizen.org/jira/browse/TIVI-2797 : [VTC1010] HFP audio does not routed to IVI
Reference / Links
AVRCP
If the AVRCP profile is supported by the remote device, the remote control feature should automatically work once the two devices are connected. Note that AVRCP requires the A2DP profile.
To test the AVRCP profile on the receiver side use the mpris-player test-tool.
Download Tizen Apps
To test the AVRCP profile on the controller side use the bluetooth-player CLI client.
Reference / Links
HID
Connecting a mouse or a keyboard
Getting a wireless mouse or keyboard to work on Tizen should be pretty straightforward since the only thing to do is to establish the Bluetooth connection.
Using Bluetoothctl
bluetoothctl might ask you to enter a PIN code; if so, just enter '0000' which is the default PIN code generally used by devices without display and keyboard.
Note that Bluetooth features are only supported on reference target devices, not on the SDK Emulator.
Specification for Tizen mobile :
{ Mobile device implementations SHOULD implement the Audio/Video Remote Control Profile(AVRCP) and the Object Exchange (OBEX) protocol.}
see also:
Software versions
Open Mobile Acl For Tizen Free Download
Software | Version |
BlueZ | 5.10 |
PulseAudio | 4.0 |
Tested profiles and devices
(TO UPDATE with more recent tests.)
Type | Device | Bluetooth Version | Profiles | Notes | Tizen image date creation |
Mouse | Microsoft Bluetooth Notebook Mouse 500 | ? | HID | OK | 2013-11-28 |
Keyboard | Microsoft Wedge Mobile Keyboard | ? | HID | OK | 2013-11-28 |
Headset | Motorola Motorokr S305 | 2.0 | A2DP sink AVRCP controller | Pairing/connection OK; A2DP profile looked fine but the lack of a proper media player prevents further tests AVRCP not tested | 2013-11-28 |
Jabra Easygo | 3.0 | HSP 1.1 (headset) HFP 1.5 | Not tested yet Not tested yet | 2013-11-28 | |
Phone | Motorola EX130 | 2.1 | A2DP source AVRCP receiver HFP HSP (Audio Gateway) OPP source OPP destination | OK OK Not tested yet Not tested yet Fails Not tested yet | 2013-11-28 |
- Arch Linux documentation about Bluetooth headsets https://wiki.archlinux.org/index.php/Bluetooth_Headset
- Arch Linux documentation about Bluetooth https://wiki.archlinux.org/index.php/Bluetooth
- Connecting Bluetooth devices from command line https://zitzlinux.wordpress.com/2011/02/28/connecting-bluetooth-devices-from-command-line/