การจับคู่ด่วนช่วยให้แอปเสริมจาก OEM สามารถผสานรวมอย่างลงตัวในการจับคู่อุปกรณ์ ประสบการณ์การใช้งาน มีจุดผสานรวมหลายจุดที่สามารถเลือกใช้ ใช้เพื่อดึงดูดผู้ใช้หลังจากจับคู่ด่วนเสร็จแล้ว
การติดตั้งตั้งแต่แกะกล่อง (OOBE)
การจับคู่ด่วนช่วยให้ผู้ใช้ดาวน์โหลดแอปที่ใช้ร่วมกันสำหรับชุดหูฟังได้เป็น ขั้นตอนสุดท้ายของประสบการณ์การใช้งานแบบแกะกล่อง (OOBE) ซึ่งจะปรากฏแก่ผู้ใช้ใน การแจ้งเตือนว่าการจับคู่เสร็จสิ้นแล้ว และสามารถ ให้ดาวน์โหลดแอปหากยังไม่ได้ติดตั้ง หรือเปิดแอปแล้วเริ่ม อยู่แล้ว
หากต้องการเริ่มต้นใช้งานฟีเจอร์นี้ ให้เพิ่มชื่อแพ็กเกจของแอปที่ใช้ร่วมกันลงใน รายละเอียดอุปกรณ์ในคอนโซล
แอปที่ใช้ร่วมกันที่เปิดตัวโดยการจับคู่ด่วนมีองค์ประกอบข้อมูลเพิ่มเติม 2 อย่างดังนี้
android.bluetooth.device.extra.DEVICE
- อุปกรณ์บลูทูธ ที่เรียกใช้การแจ้งเตือนcom.google.android.gms.nearby.discovery.fastpair.MODEL_ID
- นjava.lang.String
ที่แสดงถึงรหัสโมเดลของการจับคู่ อุปกรณ์
การผสานรวมส่วนแบ่งการตั้งค่า
Slices สามารถให้โดย เพื่อเพิ่มประสิทธิภาพของตัวเลือกที่มีในอุปกรณ์ หน้าการตั้งค่าบลูทูธ
SliceProvider ต้องใช้งานโดยแอปที่ใช้ร่วมกันเพื่อระบุส่วนแบ่งการตั้งค่าเหล่านี้ มี ส่วนแบ่งที่ใช้ได้มี 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
ไปยัง
ให้บริการจับคู่ด่วนยืนยันว่ากำลังสื่อสารกับแอปที่ถูกต้อง
- สิทธิ์ของผู้ให้บริการ
- แอปที่ใช้ร่วมกัน สรุป ลายเซ็น สาธารณะ
SHA-256
- คุณใช้ apksigner เพื่อรับไดเจสต์ SHA-256 ได้
ความตั้งใจในการอัปเดตเฟิร์มแวร์
เมื่อเวอร์ชันเฟิร์มแวร์ของอุปกรณ์ที่เชื่อมต่อล้าสมัยหรือ
พูดคนละอย่างกับเวอร์ชันเฟิร์มแวร์ที่กำหนดค่าไว้ในคอนโซลของอุปกรณ์
การจับคู่ด่วนจะแจ้งเตือนแอปที่ใช้ร่วมกันพร้อมด้วย
ความตั้งใจ com.google.android.gms.nearby.fastpair.ACTION_FIRMWARE_UPDATE_BROADCAST
หลังจากตรวจสอบเวอร์ชันเฟิร์มแวร์ Intent มีข้อมูลเพิ่มเติมต่อไปนี้
com.google.android.gms.nearby.fastpair.EXTRA_LOCAL_FIRMWARE_VERSION
เวอร์ชันเฟิร์มแวร์ของอุปกรณ์ที่เชื่อมต่อcom.google.android.gms.nearby.fastpair.EXTRA_UPDATE_NOTIFICATION_SHOWN
ตั้งค่าแล้ว เป็นtrue
หากฟีเจอร์จับคู่ด่วนแสดงการแจ้งเตือน