Szybkie parowanie umożliwia ścisłą integrację aplikacji towarzyszących OEM z korzystaniem z internetu. Istnieje wiele punktów integracji, które można opcjonalnie wykorzystywanych do angażowania użytkowników po zakończeniu Szybkiego parowania.
Instalacja po wyjęciu z pudełka (OOBE)
Szybkie parowanie pozwala użytkownikom pobrać aplikację towarzyszącą dla zestawu słuchawkowego, ostatni etap etapu testowania (OOBE). Treść ta jest prezentowana użytkownikowi w powiadomienie z informacją, że parowanie zostało zakończone i że użytkownik może: Pobierz aplikację, jeśli nie jest jeszcze zainstalowana, lub otwórz aplikację i uruchom ją za jego pomocą.
Aby zacząć korzystać z tej funkcji, dodaj nazwę pakietu aplikacji towarzyszącej do pola szczegóły urządzenia w konsoli.
Aplikacje towarzyszące wprowadzone przez Szybkie parowanie zawierają 2 dodatkowe elementy danych:
android.bluetooth.device.extra.DEVICE
– urządzenie Bluetooth które spowodowało wyświetlenie powiadomienia.com.google.android.gms.nearby.discovery.fastpair.MODEL_ID
–java.lang.String
, który reprezentuje identyfikator modelu sparowanego modelu urządzenia.
Integracja wycinka ustawień
Wycinki mogą zostać dostarczone przez aplikacji towarzyszącej, aby jeszcze bardziej rozbudować opcje dostępne na Strona ustawień Bluetooth.
SliceProvider, musi zostać wdrożony przez aplikację towarzyszącą, aby zapewnić te wycinki ustawień. OK są 2 rodzaje wycinków: wycinek OOBE i elementy ustawień ogólnych. Jeśli użytkownik nie skonfigurował jeszcze zestawu słuchawkowego, należy uwzględnić wycinek OOBE. w aplikacji towarzyszącej, a pozostałe wycinki powinny być zawsze uwzględnione, patrz przykładowy kod poniżej:
@Nullable
@Override
public Slice onBindSlice(Uri sliceUri) {
String address = sliceUri.getQueryParameter("addr");
if (address == null) {
return null;
}
String path = sliceUri.getPathSegments().get(/* index= */ 0);
if ("settings_slice".equals(path)) {
return createSettingSlice(sliceUri, address);
} else if ("oobe_slice".equals(path)) {
return createOobeReminderSlice(sliceUri, address);
}
return null;
}
oobe_slice
służy do przypominania użytkownikom o konieczności dokończenia konfiguracji urządzenia.
jeśli jeszcze tego nie zrobili w aplikacji towarzyszącej. Aplikacja towarzysząca nie może
ponownie udostępnić wycinek po zakończeniu konfiguracji urządzenia przez użytkownika.
@Nullable
private Slice createOobeReminderSlice(Uri sliceUri, String address) {
if (!deviceHasGoneThroughOobe(address)) {
ListBuilder listBuilder =
new ListBuilder(context, sliceUri, ListBuilder.INFINITY);
addOobeSlice(listBuilder, context, address);
return listBuilder.build();
}
return null;
}
private static void addOobeSlice(
ListBuilder listBuilder, Context context, String address) {
listBuilder.addRow(
createRow(
context,
R.drawable.icon_oobe,
R.string.title_oobe,
R.string.summary_oobe,
R.string.label_oobe,
createOobePendingIntent(context, address)));
}
W setting_slice
aplikacje towarzyszące mogą zawierać linki do często używanych
ustawieniach.
private Slice createSettingSlice(Uri sliceUri, String address) {
ListBuilder listBuilder =
new ListBuilder(context, sliceUri, ListBuilder.INFINITY);
// TODO: Add your customized slice here.
addRow1(listBuilder, context, address);
addRow2(listBuilder, context, address);
return listBuilder.build();
}
private static void addRow1(
ListBuilder listBuilder, Context context, String address) {
listBuilder.addRow(
createRow(
context,
R.drawable.fp_slice_row1_icon,
R.string.fp_slice_row1_title_gestures,
R.string.fp_slice_row1_summary_gestures,
R.string.fp_slice_row1_label_gestures,
createPendingIntent(context, address)));
}
private static void addRow2(
ListBuilder listBuilder, Context context, String address) {
...
}
Każdy wycinek musi mieć tytuł, podtytuł, ikonę i działanie.
private static RowBuilder createRow(
Context context,
@DrawableRes int iconId,
@StringRes int titleId,
@StringRes int summaryId,
@StringRes int actionTitleId,
PendingIntent pendingIntent) {
SliceAction action =
SliceAction.createDeeplink(
pendingIntent,
IconCompat.createWithResource(context, iconId),
ListBuilder.ICON_IMAGE,
context.getString(actionTitleId));
return new RowBuilder()
.setTitleItem(
IconCompat.createWithResource(context, iconId),
ListBuilder.ICON_IMAGE)
.setTitle(context.getString(titleId))
.setSubtitle(context.getString(summaryId))
.setPrimaryAction(action);
}
Dodaj poniższy kod do konsolipo zaimplementowaniu tagu SliceProvider
w
zezwól usłudze Szybkie parowanie na sprawdzenie, czy komunikuje się z właściwą aplikacją:
- Uprawnienia dostawcy
- Aplikacje towarzyszące podpis
SHA-256
skrót- .
- Aby pobrać skrót SHA-256, możesz użyć narzędzia apksigner.
Intencja aktualizacji oprogramowania układowego
Gdy wersja oprogramowania podłączonego urządzenia jest nieaktualna lub jest nieaktualna
nie różni się od wersji oprogramowania skonfigurowanej w konsoli urządzenia,
Szybkie parowanie wyśle do aplikacji towarzyszącej powiadomienie z komunikatem
com.google.android.gms.nearby.fastpair.ACTION_FIRMWARE_UPDATE_BROADCAST
intencja
po sprawdzeniu wersji oprogramowania. Intencja zawiera te dodatkowe informacje:
com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION
, wersja oprogramowania układowego podłączonego urządzeniacom.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN
, ustaw natrue
, jeśli Szybkie parowanie wyświetli powiadomienie