Integrasi Aplikasi Pendamping Sambungan Cepat

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

Penginstalan selama Pengalaman Out-of-Box (OOBE)

Sambungan Cepat memungkinkan pengguna mendownload aplikasi pendamping untuk headset mereka sebagai langkah terakhir Pengalaman Out-of-Box (OOBE). Ini ditampilkan kepada pengguna di sebuah notifikasi yang memberi tahu mereka bahwa pemasangan telah selesai dan mereka bisa unduh aplikasi jika belum diinstal, atau buka 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 dua elemen data tambahan:

  • android.bluetooth.device.extra.DEVICE - Perangkat Bluetooth yang memicu notifikasi.
  • com.google.android.gms.nearby.discovery.fastpair.MODEL_ID - a java.lang.String yang mewakili ID model dari pasangan perangkat seluler.

Integrasi bagian setelan

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

Sebuah SliceProvider harus diterapkan oleh aplikasi pendamping untuk menyediakan irisan setelan ini. Ada adalah 2 jenis slice yang tersedia: item setelan umum dan slice OOBE. Tujuan 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 mereka, jika belum melakukannya di aplikasi pendamping. Aplikasi pendamping tidak boleh menyediakan {i>slice<i} 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.

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 untuk izinkan layanan Sambungan Cepat memverifikasi bahwa komunikasi dengan aplikasi yang benar:

Intent update firmware

Saat versi firmware perangkat yang terhubung sudah usang, atau tepatnya berbicara berbeda dari versi {i>firmware<i} 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 melakukan pemeriksaan versi {i>firmware<i}. Intent memiliki informasi tambahan berikut:

  • com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION, versi firmware perangkat yang tersambung
  • com.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN, ditetapkan ke true jika Sambungan Cepat menampilkan notifikasi