- Please submit Fast Pair device proposal here for Google’s review and proposal. Once it is approved, you can move on to the next step. Someone on our team will reach out to you if we have questions on your proposal.
- After the proposal has been approved, please register your device at Fast Pair console here. After registration, you’ll get a model ID for your device, and then please follow the spec here or contact your SoC partner for enabling Fast Pair. During enabling, if you have any questions, please feel free to contact your Partner Eng TAM, or firstname.lastname@example.org if you do not have a TAM contact yet.
- When you finish your implementation, please follow Fast Pair certification guidelines and run self-test using the Fast Pair Validator app to ensure the implementation is correct and meets our certification criteria (please contact us to obtain the certification and self-test guideline). Once you pass all the tests in the Validator app, please send the test report to us. Meanwhile, if you experience any issues, feel free to contact us.
- You’ll need to send 5 sample units each to Google Taiwan and Google Mountain View for certification test. For logistic, during your Fast Pair implementation, please contact us and we’ll apply GPN (Google Part Number) and NCC approval based on product spec doc for importing the sample devices. Then you can send the sample units with the GPN via DHL. That's the Google logistics process. But if you have a branch office in Mountain View or Taiwan, you don't have to go through the Google logistics process. You can send sample devices to your local branch office first, and then have them delivered to Google Mountain View or Taiwan office.
- Our certified lab will run a validation test after the self-test report has been submitted and we receive the sample devices. Results will be shared in 2-4 weeks. If passed, your device’s Fast Pair functionality will be turned on immediately. Otherwise, we will contact you with a list of issues and you can re-submit the firmware once the issues have been addressed.
We recommend that you start Fast Pair certification around the starting date of your product PVT. But if you don’t think that is the best plan for you, feel free to discuss your schedule with us.
Verifying Fast Pair
Fast Pair quickly identifies Bluetooth devices near an Android mobile device and lets users connect devices with a quick tap on a notification. This document describes how to verify that Fast Pair is working correctly. The examples in this document use a Google Pixel 2 as a model Android device to test Fast Pair headsets with.
Enabling Google Play services notifications
Fast Pair requires Google Play services notifications to be enabled. If the notifications are disabled, Fast Pair notifications used to connect the Bluetooth device to your phone will not appear.
Google Play services notifications are enabled by default. If notifications are disabled, you can enable them in Settings > Apps & notifications > Google Play services > Notifications.
Debug model ID
Register your device in the console to receive a model ID. After registration, the ID will be in debug mode until it is approved for production use. To enable notifications for a debug mode ID, ensure that developer mode is on for your Android device and go to Settings > Google > Devices > > Include debug results.
Fast Pair UI Flows
The UI flows below illustrate the pairing flow when a Bluetooth headset is registered with its model ID and there is an associated companion app linked. If the headset does not have a companion app, then the pairing will still complete normally.
The initial pairing flows show when a Fast Pair device is in pairing mode (discoverabe) and is going to pairing with a phone with a registered Google account.
The subsequent pairing flows show when a Fast Pair device is not in pairing mode (not discoverable). In subsequent pairing, the Fast Pair device has already been paired with a phone with a registered Google account and you are trying to pair the Fast Pair device with another phone that is logged into the same Google account.
Shorten BLE connection interval
To improve building GATT connection performance, the Provider is expected to make the connection interval as short as possible. The expected optimal value is 7.5 ms which is applied to most Seekers.
BLE advertisement and headset connection state
Whether a Fast Pair headset advertises the model ID or account data depends on the headset's BR/EDR discoverable mode, not the connected or disconnected state. Refer to the Fast Pair Service Spec from the links below:
- "When the Provider device is in BR/EDR discoverable (that is, in pairing mode), it shall advertise Fast Pair Model ID Data over BLE." - link
- "When not discoverable (that is, not in pairing mode), the Provider shall advertise Fast Pair Account Data" - link
Testing and debugging Fast Pair
This document explains how to test and debug a Fast Pair device with an Android device. The examples in the document use a Google Pixel 2 for testing.
Fast Pair test guideline
- Two Android 6.x or higher phones
- Connected to the internet and have Bluetooth and Location turned on
- Logged into the same Google Account
- Fast Pair-enabled Bluetooth device
Test case 1: First-time pairing
- Make sure the Bluetooth device has not paired with the phone before. If the devices have paired before, go to Bluetooth settings on the phone and select Forget Device. If needed, toggle airplane mode on and off to help reset Bluetooth states.
- Make sure the Bluetooth device has not associated with the Google Account on the phone before.
- Enable pairing mode on the Bluetooth device.
- Place the Bluetooth device within 60 cm (24 in) of the Android phone.
When the Android phone detects the Fast Pair-enabled Bluetooth device, an initial pairing notification appears.
Tap the notification to start Fast Pairing.
When pairing completes, the Android device displays a Device connected notification. If the Bluetooth headset device has a companion app, then tapping on the notification will take you to the Play Store to download the app.
If pairing fails, then the Android device displays an Unable to connect notification.
Test case 2: Pairing a Google-account associated device with a new phone
- Make sure the Bluetooth device has not paired with the phone before. If the devices have paired before, go to Bluetooth settings on the phone and select Forget Device. If needed, toggle airplane mode on and off to help reset Bluetooth.
- Make sure the Bluetooth device has been associated with the Google account
registered on the device. You can check for a previous association by doing
- On the Android device that was used for the initial pairing, go to Settings > Google > Devices > Saved devices. The paired Bluetooth device should appear under the account.
NOTE: Fast Pair will turn on Automatically save devices after users click the initial pairing notification the first time.
- Check the second Android phone for a subsequent pairing. If the paired
device synced to the second phone, then a subsequent pairing notification
will appear in Settings > Google > Devices > Saved devices. If the
paired device does not appear under Saved devices after 20 minutes,
there may be an issue with your test account. Try registering new test
accounts to your devices and try again.
- If registering new test accounts does not work, try running Test Case 1 on another device that is signed into the original Google Account.
- Place the Bluetooth device within 60 cm (24 in) of the Android phone.
When the Android phone detects the Fast Pair-enabled Bluetooth device, a pairing notification for a previously-associated device appears.
Tap the notification to start subsequent pairing.
When the fast pair completes, the Android device displays a Device connected notification.
If fast pairing fails, then the Android device displays an Unable to connect notification.
Debugging with a bug report
Before reproducing the bug
Before starting testing and debugging, make sure you have enabled Bluetooth HCI snoop log for debugging. For instructions on enabling Bluetooth HCI snoop logs, see “Debugging with logs” on Verifying and Debugging Bluetooth.
To make logging easier, run the following commands after every device reboot, before you begin testing. These commands turn on logging and let you grab the bug report.
$ adb logcat -G 16M $ adb shell setprop log.tag.NearbyMessages VERBOSE $ adb shell setprop log.tag.NearbyDiscovery VERBOSE $ adb shell setprop log.tag.FastPair VERBOSE
Leave the phone next to the Bluetooth device for a few minutes before generating the bug report zip file.
After reproducing the bug
$ adb bugreport to generate a zip file that should contain all of the
data. The zip file generation may take several minutes.
Depending on the Android version, run one of the following commands to get
- For Android 8.x and higher:
shell $ adb pull data/misc/bluetooth/logs logs
- For Android 7.x:
shell $ adb pull sdcard/btsnoop_hci.log
Advertising other protocols alongside Fast Pair
Some devices may want to support additional features on top of Fast Pair, such as Google Assistant or Eddystone, that require additional advertisement space. In those cases, there are two options depending on how many bytes are currently being advertised and their contents:
- Move some data to the scan response.
- Rotate advertisements at a set interval.
Moving data to scan response
Moving data such as manufacturer name, tx power or other details to the scan response is the preferred option as that data will always be available to anyone scanning around the device. Scan response allows you to double your packet size with the downside that it may be advertised less frequently than the main packet information, meaning slightly longer discovery time.
Scan response is best suited for information outside of the service data where Fast Pair needs to be included at. See the advertising section of the spec for specific information about Fast Pair's advertising requirements.
If both the primary and scan response packets no longer have room for data, another option can be to rotate the advertisement data so that scanners can obtain it all over some length of time.
While the device is in pairing mode and advertising a model ID, Fast Pair advertisments should make up the majority of the duty cycle. To reduce the chances of Fast Pair missing your advertisements, the advertising window should be at least 2 seconds long, and the intervals between these advertisements should be no more than 4. Please note, this will severely limit compatibility and reliability of Fast Pair on older Android devices, as well as increase the time it takes Fast Pair to show the initial pairing notification.
While advertising a bloom filter, these windows and intervals can be relaxed further. However, if you support optional Fast Pair features (such as battery advertisements), these might also be hindered by aggressively relaxing the Fast Pair advertising duty cycle.
The rotation of these advertisements will be tested during the Fast Pair certification process. If a rotating scheme is used, be sure that advertisements can still be scanned for in a timely manner, otherwise certification may be delayed.