La Vinculación rápida permite que las apps complementarias de OEM se integren completamente en la vinculación y de uso de la IA. Hay varios puntos de integración que pueden ser para atraer a los usuarios después de que finalicen la Vinculación rápida.
Realiza la instalación durante la experiencia de inmediato (OOBE)
La Vinculación rápida permite que los usuarios descarguen la aplicación complementaria para sus auriculares como el último paso de la experiencia lista para usar (OOBE). Se presenta al usuario en una notificación que indique que finalizó la vinculación y que puede descarga la aplicación si aún no está instalada o ábrela e inicia y la usan.
Para comenzar a usar esta función, agrega el nombre del paquete de la aplicación complementaria al del dispositivo en la consola.
Las aplicaciones complementarias iniciadas por Vinculación rápida incluyen dos elementos de datos adicionales:
android.bluetooth.device.extra.DEVICE
: el dispositivo Bluetooth que activó la notificación.com.google.android.gms.nearby.discovery.fastpair.MODEL_ID
: ajava.lang.String
que representa el ID del modelo del modelo vinculado dispositivo.
Integración de la sección de configuración
Las Slices se pueden proporcionar mediante un aplicación complementaria para mejorar aún más las opciones disponibles en la configuración Página de configuración de Bluetooth
Un SliceProvider debe implementarse una aplicación complementaria para proporcionar estos segmentos de configuración. Hay Hay 2 tipos de segmentos disponibles: uno OOBE y elementos de configuración genéricos. El Se debe incluir un segmento de OOBE si el usuario aún no configuró los auriculares dentro de la aplicación complementaria y siempre se deben incluir las secciones restantes; consulta la siguiente muestra de código:
@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
se usa para recordarles a los usuarios que terminen de configurar el dispositivo.
si aún no lo han hecho en la aplicación complementaria. La aplicación complementaria no debe
proporciona la porción nuevamente después de que el usuario haya completado la configuración del dispositivo.
@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)));
}
setting_slice
es donde las apps complementarias pueden proporcionar vínculos a los
configuración.
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) {
...
}
Cada Slice debe tener un título, subtítulo, ícono y acción.
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);
}
Agrega lo siguiente a la consola después de implementar SliceProvider
para
Permite que el servicio de Vinculación rápida verifique que se está comunicando con la app correcta:
- La autoridad del proveedor
- Las apps complementarias resumen de la firma pública
SHA-256
- Puedes usar apksigner para obtener el resumen SHA-256.
Intent de actualización de firmware
Cuando la versión de firmware de un dispositivo conectado está desactualizada
Hablando diferente de la versión de firmware configurada en la consola del dispositivo
La Vinculación rápida notificará a la app complementaria con una
com.google.android.gms.nearby.fastpair.ACTION_FIRMWARE_UPDATE_BROADCAST
intent
después de comprobar la versión de firmware. El intent tiene la siguiente información adicional:
com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION
, el La versión de firmware del dispositivo conectado- Se estableció
com.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN
atrue
si la Vinculación rápida mostró una notificación