User Tools

Site Tools


xw_bluetooth_phone

This is an old revision of the document!


Bluetooth Phone

Under Construction

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

Watch Bluetooth Phone video coming soon.

Access the Requirements Document (DRD) coming soon.

Access the Sources code on GitHub.

Download the Application WGT coming soon.

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”.

wiki

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.

wiki wiki

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.

wiki wiki

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.

wiki wiki

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.

wiki wiki

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

wiki wiki

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.

wiki wiki

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.

wiki

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.

Known Bugs

  • Selecting previously discovered/cached phones will crash the widget.
  • Unpairing from the HU crashes the widget. You can restart it, but as long as you're shown as paired on the phone, you will not be able to re-pair again.
  • Performing a Scan from the widget does not find currently paired/selected phone.
  • There's currently no way to make the system “forget” a phone. This is especially a problem after unpairing through the phone's UI. (restarting will fix the issue)
  • After fully syncing with a phone, backing out of the Phone widget will disable/break the phone icon in the Home Screen. (though the Phone widget IS running in the background.)
  • Turn Off button seems to have no effect sometimes. (kill/restart widget will fix the issue)
  • If you stop a Scan, sometimes you will not be able to rescan from within the widget. (kill/restart widget will fix the issue)
  • Once Bluetooth has been Turned Off, Turning it back On again seems to turn it on, yet will not allow you to Scan. (kill/restart widget will fix the issue)
  • Widget initiates ActiveCall/Hangup messages in the background for no apparent reason.
  • Sometimes the phone will be automatically marked as Selected even after a fresh pairing. This will not allow you to select the phone and therefore will not sync contacts/call history. (widget issue likely)

Release History

Features

Features for the Audio Control home screen include the following:

  • Place call
  • Handles incoming calls passed from IncomingCall widget
  • Display call history
  • Display contact list
  • Mute/unmute call

Bug Fixes

  • INTIVIPOCII-277 Phone call not shown as active when dialed via keypad)
  • INTIVIPOCII-45 Create build script to deploy and package applications from original Intel PoC (HomeScreen, Music player, Phone application, Store application, Settings, Dashboard, Google Navigation and Intel Navigation)
  • INTIVIPOCII-44 Handle incoming call scenario from paired smartphone (show widget and open Phone application on acceptance of call)
  • INTIVIPOCII-56 Integrate call log from paired phone (carousel)
  • INTIVIPOCII-55 Integrate phonebook from paired phone
  • INTIVIPOCII-58 C++ Provide call history of placed, missed and received phone calls with contact information
  • INTIVIPOCII-89 Remove paired smartphone
  • INTIVIPOCII-87 Pair new smartphone over Bluetooth with PIN entry
  • INTIVIPOCII-88 Mark phone as selected for incoming calls, call history etc
  • INTIVIPOCII-86 Display list of available smartphones over Bluetooth
  • INTIVIPOCII-372 Phone - User name not displayed when call received from other app than Phone
  • INTIVIPOCII-373 Phone - Phone call cannot be accepted from Navigation view
  • INTIVIPOCII-341 Phone - When call created from dialpad is ended, dialpad number field should be cleared
  • INTIVIPOCII-167 Phone - Volume cannot be adjusted
  • INTIVIPOCII-211 C++ Provide phonebook of contacts available on paired smartphone
  • INTIVIPOCII-212 C++ Invoke phone call on smartphone
  • INTIVIPOCII-214 C++ Get phone call status
  • INTIVIPOCII-213 C++ Signalize phone call from smartphone
  • INTIVIPOCII-216 C++ End/cancel phone call
  • INTIVIPOCII-217 C++ Accept/decline incoming phone call
  • INTIVIPOCII-220 On app startup/active check phone call status and switch app to normal/dialing/calling
  • INTIVIPOCII-215 C++ Mute/Unmute phone call
  • INTIVIPOCII-218 Integrate call log from paired phone (contact detail)
  • INTIVIPOCII-219 Invoke call from dialpad, carousel call history, phonebook
  • INTIVIPOCII-247 Phone - Accept/Reject phone call icons jump after clicking on them
  • INTIVIPOCII-258 Phone - Call accept/dismiss does not work from HomeScreen
  • INTIVIPOCII-257 Phone - Phone pop-up window is not dismissed and switched to Phone app, when incoming call is accepted/rejected from paired device
  • INTIVIPOCII-256 Phone - Long press in Phone dialer does not work
  • INTIVIPOCII-269 Phone - Incoming call cannot be accepted/rejected from NDIS in Music Player and Maps
  • INTIVIPOCII-267 Phone - Time count starts already during dialing while phone call is not accepted yet
  • INTIVIPOCII-331 refactoring phone
  • INTIVIPOCII-278 Phone - Phone app is closed when call started from Phone app ends
  • INTIVIPOCII-287 Implement service to sync phone data
  • INTIVIPOCII-307 Phone - End button not displayed when outgoing call made from directly from paired mobile phone
  • INTIVIPOCII-311 BT Settings - Phone still shown as paired even after pressing unpair
  • INTIVIPOCII-375 Phone - Application crashes after Mute button is pressed during ongoing call
  • INTIVIPOCII-368 Phone - After call ends view is not returned back to the application from which phone call was accepted
  • INTIVIPOCII-283 Phone - View of call number entered into dial pad is not scrolled when more numbers entered than is the filed size
  • C++ porting phoned to the bluez 5.12 API
xw_bluetooth_phone.1658875264.txt.gz · Last modified: 2022/07/26 22:41 by waltminer