User Tools

Site Tools


bluetooth_phone

This is an old revision of the document!


Summary

This application BlueZ/Ofono provides voice call from paired Bluetooth phone.

The application uses following APIs:

  • Phone library: This class provides methods to operate with contacts and call history
  • tizen.bt as replacement of tizen.bluetooth API due to conflicts in underlying framework. The following Bluetooth functionalities are provided via Tizen Bluetooth API:
    • Controls local Bluetooth device, that is, turn Bluetooth on/off, etc.
    • Sets visibility
    • Discovers nearby Bluetooth devices (Device discovery).
    • Gets bonded devices information.
    • Controls bonding.
    • Connects to a service on a remote device and exchanges data.
    • Registers a service (RFCOMM) on a local device, which can be consumed by remote devices to exchange data.

The application supports multiple connected devices, however only one of the devices can be selected at the time. Selection is done from Bluetooth UI. In case that phone has active call additional Carousel element is replaced by CallDuration element.

The application allows following operations:

  • Place call
  • Handles incoming calls passed from IncomingCall widget
  • Display call history
  • Display contact list
  • Mute/unmute call - not working due to TIVI-2448

Additionally application can be controlled using speech recognition via Speech component.

Resources

What the app does

Features for Bluetooth include the following:

  • Viewing available devices in range
  • Pairing with a device
  • Displaying the status of various devices
  • Selecting the device once permissions have been exchanged
  • Downloading information such as contacts from the device
  • Allowing interactivity between devices interchangeably

Features for Phone include the following:

  • Making and receiving calls either manually or through the contact list
  • Viewing recent calls made on either of the devices
  • Viewing contacts

To launch the Phone application the user touches the phone icon at the top of the device (handset shape), or it can be launched through the Application Screen. If the Bluetooth connection has not yet been established, it will display the text “NO BT DEVICE SELECTED”.

The user needs to visit the Bluetooth Settings Screen in order to establish a connection between devices before the features for the Phone application are available. To do this, the user can go to the Settings Screen by touching the settings icon at the top right on the Home Screen or Phone application, or by going through the Applications Screen and touching the settings icon. Once in the Settings Screen, the user touches the word BLUETOOTH and the Bluetooth Settings Screen opens.

If Bluetooth is not yet turned on, the user taps the TURN ON button to scan for nearby devices. A list of devices that can be connected show up, each with a PAIR button next to it. Previously paired devices would also show up on the screen, with the option to UNPAIR.

The user taps the PAIR button. The mobile device being paired must now be checked, to see if the Bluetooth request for pairing permission has been sent. Respond affirmatively and the Bluetooth Settings screen will show that the selection is occurring.

When devices have been paired the Bluetooth application should also request permission to access the mobile device’s phonebook. If not, the user must check the mobile device’s settings to make sure the profile for a phone connection is enabled.

Once the final permission has been given, the application shows confirmation that the mobile device is

  • Paired,
  • Selected,
  • What type of device it is,
  • Connected,
  • And an option to UNPAIR will be available.

The user can go now go back to the Phone application by using the BACK button or tapping the X at the top right corner of the screen to close the Settings Screen from the Phone application.

Now that the mobile device is paired and enabled within the Bluetooth settings, the phone application is able to place calls, handle incoming calls, display a call history, and display a contact list. The phone application screen will show recent calls under the telephone keypad. Use single finger scroll to go through the carousel list for the phone numbers and possibly see a thumbnail image of the caller

By tapping the Contacts List icon (the A-Z flag in the upper right) the contact list is viewable. The list can be viewed in either list or icon view by tapping the grid icon or line icon to the left.

To see the details for a contact, tap the contact row or icon. Then the screen shows the details for that particular contact. Tap the phone number to initiate a call.

The keypad screen displays the caller with thumbnail, and will display the status DIALING. Once answered, the screen indicates the call duration in addition to showing the options for the features SPEAKER, MUTE, HOLD, and ADD CALL. Tap the red button to terminate the call.

To receive a call via Bluetooth, which is to the mobile device, simply tap the green panel. To dismiss a call, just tap the red panel, or the user can also interact with the connected device. The user may exit the Phone App at any time using the return arrow. If using another application, the Phone App will interrupt with the incoming call screen (see just above) and give the user the option to receive or reject the call.

Technical Details

The sections below are taken from directions for what is known as the Tizen IVI 3.0-M2-EOY (commonly called 'the Jan. 15 image'. The current Tizen release is dated 2014.01.14, and may require some adjustment.

Installation Prerequisites

The following installation directions take the base Tizen image and install needed supporting software

Audio Controls Application

Tizen Audio Output Configuration

Execute the command (one time only):

root:~> alsactl init 0

This enables audio generated from the Audio Controls application to be available on the Line Out Jack.

WRT Plugin Dependencies

Depends on installation of the MOST WRT plugin, which is rpm packages wrt-plugins-ivi-most-0.8.6-1.i586 and wrt-plugins-ivi-most-devel-0.8.6-1.i586.

Instructions for debugging WRT Apps on Tizen IVI (installation, removal, and deployment)

Tizen IVI WRT applications are built into widget ('.wgt') files for deployment (a format based on the W3C widget specification, see http://www.w3.org/TR/widgets/ for more information). Once you have built or received the widget files for one or more applications that you wish to deploy and run, the next step is to copy them onto the target device. Common options for this would be tools like scp/sftp (in a Linux/Unix environment), FileZilla (Windows and Mac) or Cyberduck (Mac).

Once the .wgt files have been transferred to the target machine, they may be installed, launched and uninstalled.

To get a list of currently installed applications, use the following command from a terminal (or remote shell/ssh session) on the target hardware (log in as root with the password tizen):

root:~> wrt-launcher -l

This will produce output similar to the following:

No Name Version GUID Package ID App ID
1 saythis 1.0.0 http://yourdomain/sayThis lYjFlj49Q4 lYjFlj49Q4.saythis
2 Settings 1.0.0 http://yourdomain/Settings ODBQpKvkS1 ODBQpKvkS1.Settings
3 MediaPlayer 1.0.0 http://yourdomain/MediaPlayer<nowiki>/ t8j6HTRpuzt8j6HTRpuz.MediaPlayer-4Store 8.2.4401<nowiki>http://com.intel.tizen/store intelPoc13 intelPoc13.Store
5 Phone 8.2.4399 http://com.intel.tizen/phone intelPoc15 intelPoc15.phone

If the application you wish to install is not already installed, simply enter (using intelPoc16.HVAC.wgt as an example):

root:~> wrt-installer -i intelPoc16.HVAC.wgt

If successful, you should see output such as the following:

===========================================================
   # wrt-installer #
   # argc [3]
   # argv[0] = [wrt-installer]
   # argv[1] = [-i]
   # argv[2] = [intelPoc16.HVAC.wgt]
   ## wrt-installer : intelPoc20.AudioNonPOC installation was successful.
   ===========================================================

If unsuccessful, you may see errors such as 'invalid widget package', 'privilege level violation' or, if the application is already installed (and its widget file was built with a different signature than the one you wish to install), 'invalid signature'. The first two errors are out of scope for this document.

If you see 'invalid signature', and the widget file has to your knowledge been created with a valid signature, the likely cause is a conflict between the signature of the currently installed version and that of the new version. Though both signatures may be valid, the system treats the upgrade of an existing package with a different signature as a security violation. To work around this issue, simply uninstall the application and subsequently install the new version:

root:~> wrt-installer -un intelPoc20.AudioNonPOC      <-- note: use the App ID when unstalling and

the full widget filename when installing

If the uninstall is successful, you should see output like the following:

===========================================================
   # wrt-installer #
   # argc [3]
   # argv[0] = [wrt-installer]
   # argv[1] = [-un]
   # argv[2] = [intelPoc20.AudioNonPOC]
   ===========================================================
   ## wrt-installer : intelPoc20.AudioNonPOC uninstallation was successful.

Refer to installation instructions above for the subsequent installation steps.

In order to launch and run an installed application, issue the following command with the application's App ID as an argument:

root:~> wrt-launcher -s intelPoc20.AudioNonPOC

You should see the application start and run on the target device.

To launch the application in debug mode, add the '-d' flag:

root:~> wrt-launcher -d -s intelPoc20.AudioNonPOC

This will produce output like the following:

root:~/wgt> wrt-launcher -d -s intelPoc20.AudioNonPOC
   port: 36070
   result: launched

The port number referenced is a random high port which allows one to connect to the target device with a web browser using a URL of the form:

http://&lt;ip address or name of target device>:<port #>

For example:

http://192.168.1.223:36070

Once connected, you should see a single link in the upper right of the resulting web page, e.g.:

file:///opt/usr/apps/intelPoc20/res/wgt/index.html

Clicking that link will launch Webkit Web Inspector, a set of web development tools that should look familiar to users of Firefox Firebug or Chrome Dev Tools. Click the 'Console' icon in the toolbar to go to the Javascript console. Press ctrl-R, or type:

window.location.reload();

…to reload the application in order to display the startup/initialization functions associated with the app (since the app has already started by the time the debug interface is available).

To exit a running application, issue the following command with the application's App ID as an argument:

root:~> wrt-launcher -k intelPoc20.AudioNonPOC

Instruction to the console:

Assumptions these are all running from the Tizen platform and can access the console by SSH command or Control ALT F4 for a terminal. Tizen instructions are at Tizen.org

Install

wrt-installer -i intelPoc20.AudioNonPOC.wgt

Launch

wrt-installer -i intelPoc20.AudioNonPOC.wgt

Known Bugs

  • The only way to switch between the Audio Controls application and another application is to kill the Audio Controls.

Release History

Features

Features for the Audio Control home screen include the following:

  • Bass control via slider and +/- buttons
  • Treble control via slider and +/- buttons
  • Sub-woofer control via slider and +/- buttons
  • Balance control via a graphical thumb/crosshair and +/- buttons
  • Fade control via a graphical thumb/crosshair and +/- buttons
  • 2D surround sound controls: Meridian, Dolby, DTS, and Stereo
  • 3D surround sound controls: Meridian, Dolby, and DTS.
  • Master volume slider

Bug Fixes

  • Displays the green/blue theme
bluetooth_phone.1397578327.txt.gz · Last modified: 2014/04/15 16:12 by rudolf_streif