快速配對隨附應用程式整合功能

快速配對功能可讓原始設備製造商 (OEM) 隨附應用程式深入配對 。您可以選擇多種整合點 會在使用者完成快速配對後與他們互動。

開箱體驗 (OOBE) 期間的安裝作業

快速配對功能可讓使用者下載耳機的隨附應用程式, 開箱體驗 (OOBE) 的最後一步。這將顯示 通知他們配對已完成 如果尚未安裝,則下載應用程式。或者,直接開啟應用程式並啟動 利用 Vertex AI Workbench 使用者

如要開始使用這項功能,請將隨附應用程式的套件名稱新增至 到主控台查看裝置詳細資料。

快速配對功能啟動的隨附應用程式包含兩項額外資料元素:

  • android.bluetooth.device.extra.DEVICE - 藍牙裝置 觸發了通知的時間點
  • com.google.android.gms.nearby.discovery.fastpair.MODEL_ID - a 代表配對配對模型 IDjava.lang.String 裝置。

設定配量整合

Slice 可以由 隨附應用程式,進一步強化裝置裝置的可用選項 「藍牙設定」頁面。

SliceProvider 必須由隨附應用程式實作,才能提供這些設定配量。有 有兩種可用的切片類型:OOBE 切片和一般設定項目。 如果使用者尚未設定耳機,則應包含 OOBE 配量 以及其餘配量。請參見 程式碼範例:

@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 的用途是提醒使用者完成裝置設定。 。隨附應用程式不得 等到使用者完成裝置設定後,再重新提供片段。

@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」可讓隨附應用程式提供常用連結 可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目

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) {
  ...
}

每個 Slice 都需要有標題、副標題、圖示和動作。

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);
}

SliceProvider 導入控制台, 允許快速配對服務驗證是否與正確的應用程式通訊:

韌體更新意圖

連線裝置的韌體版本過舊 與裝置控制台中設定的韌體版本不同 快速配對功能會透過以下方式通知隨附應用程式: com.google.android.gms.nearby.fastpair.ACTION_FIRMWARE_UPDATE_BROADCAST 意圖 並在韌體版本檢查完畢後 重新進行升級意圖包含以下額外資訊:

  • com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION, 已連結裝置的韌體版本
  • com.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN,已設定 如果快速配對顯示通知,則將權限授予 true
,瞭解如何調查及移除這項存取權。