फ़ास्ट पेयर कंपैनियन ऐप्लिकेशन इंटिग्रेशन

फ़ास्ट पेयर की सुविधा से, OEM के साथी ऐप्लिकेशन को डिवाइस से जोड़े जाने की प्रोसेस में बेहतर तरीके से इंटिग्रेट किया जा सकता है इस्तेमाल करें. यहां ऐसे कई इंटिग्रेशन पॉइंट हैं जिन्हें वैकल्पिक तौर पर का इस्तेमाल, फ़ास्ट पेयरिंग के बाद उपयोगकर्ताओं से जुड़ने के लिए किया जाता है.

आउट-ऑफ़-बॉक्स एक्सपीरियंस के दौरान इंस्टॉलेशन (ओओबीई)

फ़ास्ट पेयर की सुविधा की मदद से उपयोगकर्ता, हेडसेट के लिए साथी ऐप्लिकेशन डाउनलोड कर सकते हैं. आउट-ऑफ़-बॉक्स एक्सपीरियंस (ओओबीई) का आखिरी चरण. यह उपयोगकर्ता को इसमें दिखाया जाता है एक सूचना जो उन्हें बताती है कि दूसरे डिवाइस से जुड़ने की प्रोसेस पूरी हो गई है और वे अगर आपने ऐप्लिकेशन को पहले से इंस्टॉल नहीं किया है, तो इसे डाउनलोड करें. इसके अलावा, अगर ऐप्लिकेशन पहले से इंस्टॉल नहीं है, तो उसे डाउनलोड करें उसका इस्तेमाल करना.

इस सुविधा का इस्तेमाल करने के लिए, साथी ऐप्लिकेशन के पैकेज का नाम कंसोल पर डिवाइस की जानकारी मौजूद है.

फ़ास्ट पेयर की सुविधा की मदद से लॉन्च किए गए साथी ऐप्लिकेशन में, दो अतिरिक्त डेटा एलिमेंट शामिल होते हैं:

  • android.bluetooth.device.extra.DEVICE - ब्लूटूथ डिवाइस जिससे सूचना ट्रिगर हुई.
  • com.google.android.gms.nearby.discovery.fastpair.MODEL_ID - a java.lang.String, जो जोड़े गए प्रॉडक्ट का मॉडल आईडी दिखाता है डिवाइस.

सेटिंग स्लाइस इंटिग्रेशन

स्लाइस की सप्लाई साथी ऐप्लिकेशन से, डिवाइस के Chromebook पर उपलब्ध विकल्पों को और बेहतर बनाया जा सकता है ब्लूटूथ सेटिंग पेज.

SliceProvider ये सेटिंग स्लाइस उपलब्ध कराने के लिए, किसी साथी ऐप्लिकेशन को लागू करना ज़रूरी है. यह लीजिए स्लाइस दो तरह के होते हैं: एक ओओबीई स्लाइस और सामान्य सेटिंग आइटम. कॉन्टेंट बनाने अगर उपयोगकर्ता ने अभी तक हेडसेट कॉन्फ़िगर नहीं किया है, तो 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) {
  ...
}

हर स्लाइस में टाइटल, सबटाइटल, आइकॉन, और ऐक्शन होना चाहिए.

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 पर