Closed Bug 953019 Opened 11 years ago Closed 6 years ago

[HID] Notify user to press any key on the bluetooth keyboard to init connection

Categories

(Firefox OS Graveyard :: Bluetooth, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(tracking-b2g:backlog)

RESOLVED WONTFIX
tracking-b2g backlog

People

(Reporter: shawnjohnjr, Unassigned)

References

Details

Attachments

(1 file)

Some bluetooth keyboard does not support connection initiated from phone. It is supposed to add notification.

So Gecko is suppose to tell the HID keyboard supports:
a. HID Keyboard can accept connection initiated from phone
b. HID keyboard can accept reconnection initiated from phone

Impact:
Some HID keyboards only design as that the connection only initiated from keyboard itself. If we don't guide user, user would think HID keyboard fail to connect.

Use case might look like:
1. Pair with Bluetooth HID keyboard
2. Bluetooth HID connection established
3. HID Connection drop if users disconnect or turn off bluetooth from the phone
4. User turns on bluetooth again
5. If user connects with bluetooth hid keyboard, user shall expect to see HID keyboard gets connected or a dialog showing that user shall press any key on keyboard to recover HID keyboard connection

Tech detail:
 bluedroid will check SDP records with HID normally connectable
 and HIDReconnectInitiate and HIDNormallyConnectable.
 HIDReconnectInitiate attribute is a boolean value, which indicates
 whether the device initiates the reconnection process or expects the host to.
 Devices that have this attribute True shall enter Page mode to automatically
 reconnect to the host if the connection is dropped for any unknown reason.

 HIDNormallyConnectable is an optional Boolean attribute that specifies
 whether a HID is normally in Page Scan mode (when no connection is active)
 or not. If the device declares this attribute and sets it to true, it shall
 remain connectable in order to respond.
Flags: needinfo?(nhsieh)
Component: Gaia::Settings → Bluetooth
Hi Neo,
Please consider this scenario if Bluetooth HID is in your spec.
Summary: Notify user to press any key on the bluetooth keyboard to init connection → [Bluetooth] [HID]Notify user to press any key on the bluetooth keyboard to init connection
Hi Bruce, I know this is a important function. But seems not in 1.4 scope. Please help to review that and give us feedback. Thanks.
Flags: needinfo?(nhsieh) → needinfo?(bhuang)
Bruce, I ni? Neo because I hope UX team can take consideration whenever HID is in scope, since we have done some efforts on Bluetooth HID profile already and it is good to notify UX team earlier. Since I'm not sure when HID will be considered in later milestone.
Bruce,
If HID is part of your future plan, this bug also needs gaia work.
This will need stream 3 resources for UX/Gaia.  Adding to backlog first.
blocking-b2g: --- → backlog
Flags: needinfo?(bhuang)
Assignee: shuang → joliu
See attached for spec. Tks ;)
blocking-b2g: backlog → ---
Hi Shawn,
  How can we get SDP record through bluedroid stack. So that we can determine whether to notify user to establish connection from HID Device or not?

Thanks,
Louis
Flags: needinfo?(shuang)
(In reply to lochang from comment #7)
> Hi Shawn,
>   How can we get SDP record through bluedroid stack. So that we can
> determine whether to notify user to establish connection from HID Device or
> not?
> 
> Thanks,
> Louis

This attribute mask can be retrieved from hid info struct. I guess we can get it from hid_info_callback.
Flags: needinfo?(shuang)
Deassign myself since I'm not working on this bug.
Assignee: joliu → nobody
Blocks: 880759
No longer blocks: 915534
Assignee: nobody → lochang
Summary: [Bluetooth] [HID]Notify user to press any key on the bluetooth keyboard to init connection → [HID] Notify user to press any key on the bluetooth keyboard to init connection
For now, resolving this bug is user experience decision (or we can resolve it after finding a way to receive the flag |HIDNormallyConnectable| in gecko).

As describe in comment 1, some bluetooth keyboard does not support reconnection initiated from phone (only support one-way reconnection initiated from keyboard itself). So for better user experience, we should notify user to press any key on the keyboard to establish the reconnection. To accomplish this function, we have to check whether the flag |HIDNormallyConnectable| in HID device is set or not. But now we have no way to receive this information in gecko.

We have teseted for several android device including Motorola nexus6-l, HTC One mini2-jb, LG nexus5-l, Sony z3-l. And only HTC mini2 notifies user to establish the reconnection from keyboard. It implements this function without checking the |HIDNormallyConnectable| flag, but directly notifies user for every keyboard (even the keyboard which |HIDNormallyConnectable| is set).
Assignee: lochang → nobody
No longer blocks: 880759
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: