빠른 페어링 호환 앱 통합

빠른 페어링을 사용하면 OEM 호환 앱이 페어링에 긴밀하게 통합되고 사용 환경입니다. 선택적으로 여러 개의 통합 지점이 있습니다. 사용자가 빠른 페어링을 완료한 후 참여하게 하는 데 사용됩니다.

구매 직후 환경 (OOBE)에서 설치

빠른 페어링을 사용하면 사용자는 헤드셋용 호환 앱을 다운로드하여 구매 직후 환경 (OOBE)의 마지막 단계입니다. 이 정보는 페어링이 완료되었으며 아직 앱이 설치되어 있지 않으면 앱을 다운로드하고, 그렇지 않으면 앱을 열고 시작합니다. 사용할 수 있습니다.

이 기능을 시작하려면 호환 앱의 패키지 이름을 기기 세부정보를 콘솔에서 확인하세요.

빠른 페어링으로 실행되는 호환 앱에는 두 가지 추가 데이터 요소가 포함됩니다.

  • android.bluetooth.device.extra.DEVICE - 블루투스 기기 알림을 트리거한 것이죠.
  • com.google.android.gms.nearby.discovery.fastpair.MODEL_ID~a 페어링된 java.lang.String모델 ID를 나타냅니다. 있습니다.

설정 슬라이스 통합

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로 연결
를 통해 개인정보처리방침을 정의할 수 있습니다.