ফাস্ট পেয়ার কম্প্যানিয়ন অ্যাপ ইন্টিগ্রেশন

ফাস্ট পেয়ার OEM সহচর অ্যাপগুলিকে পেয়ারিং এবং ব্যবহারের অভিজ্ঞতার সাথে গভীরভাবে একত্রিত করার অনুমতি দেয়৷ একাধিক ইন্টিগ্রেশন পয়েন্ট রয়েছে যেগুলি ব্যবহারকারীদের দ্রুত পেয়ারিং শেষ করার পরে তাদের যুক্ত করার জন্য ঐচ্ছিকভাবে ব্যবহার করা যেতে পারে।

আউট-অফ-বক্স অভিজ্ঞতার সময় ইনস্টলেশন (OOBE)

ফাস্ট পেয়ার ব্যবহারকারীদের তাদের হেডসেটের জন্য আউট-অফ-বক্স অভিজ্ঞতার (OOBE) চূড়ান্ত ধাপ হিসেবে সঙ্গী অ্যাপ ডাউনলোড করতে দেয়। এটি ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তির মাধ্যমে উপস্থাপন করা হয় যাতে বলা হয় যে পেয়ারিং শেষ হয়েছে এবং তারা হয় অ্যাপটি ডাউনলোড করতে পারেন যদি এটি ইতিমধ্যে ইনস্টল না থাকে, অথবা অন্যথায় অ্যাপটি খুলুন এবং এটি ব্যবহার করা শুরু করুন।

এই বৈশিষ্ট্যটির সাথে শুরু করতে, কনসোলে ডিভাইসের বিবরণে আপনার সহযোগী অ্যাপের প্যাকেজের নাম যোগ করুন৷

ফাস্ট পেয়ার দ্বারা চালু হওয়া সঙ্গী অ্যাপগুলিতে একটি অতিরিক্ত ডেটা উপাদান রয়েছে:

সেটিংস স্লাইস ইন্টিগ্রেশন

একটি ডিভাইসের ব্লুটুথ সেটিংস পৃষ্ঠায় উপলব্ধ বিকল্পগুলিকে আরও উন্নত করার জন্য একটি সহযোগী অ্যাপ দ্বারা স্লাইসগুলি সরবরাহ করা যেতে পারে৷

এই সেটিংস স্লাইসগুলি প্রদান করার জন্য একটি সঙ্গী অ্যাপ দ্বারা একটি স্লাইসপ্রোভাইডার অবশ্যই প্রয়োগ করতে হবে৷ এখানে 2 ধরনের স্লাইস পাওয়া যায়: একটি 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) {
  ...
}

প্রতিটি স্লাইসে শিরোনাম, সাবটাইটেল, আইকন এবং অ্যাকশন থাকতে হবে।

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 সেট করুন