Hızlı Eşleme, OEM tamamlayıcı uygulamalarının eşleştirmeye ve en iyi yöntemin ne olduğunu öğreneceğiz. İsteğe bağlı olarak eklenebilecek birden fazla entegrasyon noktası vardır. kullanıcıların Hızlı Eşleme'yi bitirdikten sonra ilgisini çekmek için kullanılır.
Kullanıma hazır deneyimi (OOBE) sırasında yükleme
Hızlı Eşleme, kullanıcıların mikrofonlu kulaklıklarının tamamlayıcı uygulamasını ilk adımıdır. Bu, kullanıcıya şu dilde sunulur: eşlemenin sona erdiğini ve iki veya daha fazla yüklü değilse uygulamayı indirin veya uygulamayı açıp başlatın anlamaktır.
Bu özelliği kullanmaya başlamak için tamamlayıcı uygulamanızın paket adını cihaz ayrıntılarını konsolda.
Hızlı Eşleme tarafından başlatılan tamamlayıcı uygulamalar iki ekstra veri öğesi içerir:
android.bluetooth.device.extra.DEVICE
- Bluetooth Cihazı bir bildirim görürsünüz.com.google.android.gms.nearby.discovery.fastpair.MODEL_ID
: Eşlenen model kimliğini temsil edenjava.lang.String
olanak tanır.
Ayarlar dilimi entegrasyonu
Dilimler, seçenekleri daha da geliştirmek için tamamlayıcı uygulamaya Bluetooth ayarları sayfası.
SliceProvider bu ayar dilimlerini sağlamak için bir tamamlayıcı uygulama tarafından uygulanmalıdır. Orada 2 tür dilim kullanılır: OOBE dilimi ve genel ayar öğeleri. İlgili içeriği oluşturmak için kullanılan Kullanıcı, başlığı henüz yapılandırmadıysa OOBE dilimi eklenmelidir kalan dilimler her zaman eklenmelidir, bkz. aşağıdaki kod örneğine bakalım:
@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
, kullanıcılara cihazlarının kurulumunu tamamlamalarını hatırlatmak için kullanılır.
Tamamlayıcı Mod'u kullanabilirsiniz. Tamamlayıcı uygulama
Kullanıcı cihaz kurulumunu tamamladıktan sonra dilimi tekrar sağlar.
@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
, tamamlayıcı uygulamaların yaygın olarak kullanılanlara bağlantılar sağlayabileceği yerdir
Ayarlar'da devre dışı bırakabilirsiniz.
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) {
...
}
Her Dilimin başlığı, alt başlığı, simgesi ve işlemi olmalıdır.
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
uzantısını
Hızlı Eşleme hizmetinin doğru uygulamayla iletişim kurduğunu doğrulamasına izin verin:
- Sağlayıcının yetkisi
- Tamamlayıcı uygulamaların herkese açık imza
SHA-256
özeti- SHA-256 özetini almak için apksigner kullanabilirsiniz.
Donanım yazılımı güncelleme amacı
Bağlı bir cihazın donanım yazılımı sürümü güncel olmadığında veya
Cihaz konsolunda yapılandırılan donanım yazılımı sürümünden farklı bir şekilde konuşmanız,
Hızlı Eşleme, tamamlayıcı uygulamaya bir
com.google.android.gms.nearby.fastpair.ACTION_FIRMWARE_UPDATE_BROADCAST
Amacı
donanım yazılımı sürümü kontrolünden sonra. Intent aşağıdaki ek bilgilere sahiptir:
com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION
, bağlı cihazın donanım yazılımı sürümücom.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN
, ayarlandı Hızlı Eşleme bir bildirim gösterdiysetrue
cihazına