Integrasi Aplikasi Pendamping Sambungan Cepat

Sambungan Cepat memungkinkan aplikasi pendamping OEM diintegrasikan secara mendalam ke pengalaman penyambungan dan penggunaan. Ada beberapa titik integrasi yang dapat digunakan secara opsional untuk berinteraksi dengan pengguna setelah mereka menyelesaikan Sambungan Cepat.

Pemasangan selama Pengalaman {i>Out-of-Box<i} (OOBE)

Sambungan Cepat memungkinkan pengguna mendownload aplikasi pendamping untuk headset mereka sebagai langkah terakhir dari Pengalaman Luar Biasa (OOBE). Ini akan ditampilkan kepada pengguna dalam notifikasi yang memberi tahu bahwa penyambungan telah selesai dan mereka dapat mendownload aplikasi jika belum diinstal, atau membuka aplikasi dan mulai menggunakannya.

Untuk mulai menggunakan fitur ini, tambahkan nama paket aplikasi pendamping Anda ke detail perangkat di konsol.

Aplikasi pendamping yang diluncurkan oleh Sambungan Cepat menyertakan elemen data tambahan:

Integrasi slice setelan

Slice dapat disediakan oleh aplikasi pendamping untuk lebih meningkatkan opsi yang tersedia di halaman setelan Bluetooth perangkat.

SliceProvider harus diterapkan oleh aplikasi pendamping untuk menyediakan bagian setelan ini. Ada 2 jenis slice yang tersedia: slice OOBE dan item setelan umum. Slice OOBE harus disertakan jika pengguna belum mengonfigurasi headset dalam aplikasi pendamping dan slice yang tersisa harus selalu disertakan, lihat contoh kode di bawah ini:

@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 digunakan untuk mengingatkan pengguna agar menyelesaikan penyiapan perangkat, jika belum melakukannya di aplikasi pendamping. Aplikasi pendamping tidak boleh menyediakan potongan lagi setelah pengguna menyelesaikan penyiapan perangkat.

@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 adalah tempat aplikasi pendamping dapat memberikan link ke setelan yang umum digunakan.

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

Setiap Slice harus memiliki judul, subtitel, ikon, dan tindakan.

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

Tambahkan kode berikut ke konsol setelah mengimplementasikan SliceProvider agar layanan Sambungan Cepat dapat memverifikasi bahwa layanan tersebut berkomunikasi dengan aplikasi yang benar:

Intent update firmware

Jika versi firmware perangkat terhubung sudah tidak berlaku lagi, atau secara persis berbeda dengan versi firmware yang dikonfigurasi di konsol perangkat, Sambungan Cepat akan memberi tahu aplikasi pendamping dengan Intent com.google.android.gms.nearby.fastpair.ACTION_FIRMWARE_UPDATE_BROADCAST setelah pemeriksaan versi firmware. Intent memiliki informasi tambahan berikut:

  • com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION, versi firmware dari perangkat yang terhubung
  • com.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN, disetel ke true jika Sambungan Cepat telah menampilkan notifikasi