빠른 페어링을 사용하면 OEM 호환 앱이 페어링에 긴밀하게 통합되고 사용 환경입니다. 선택적으로 여러 개의 통합 지점이 있습니다. 사용자가 빠른 페어링을 완료한 후 참여하게 하는 데 사용됩니다.
구매 직후 환경 (OOBE)에서 설치
빠른 페어링을 사용하면 사용자는 헤드셋용 호환 앱을 다운로드하여 구매 직후 환경 (OOBE)의 마지막 단계입니다. 이 정보는 페어링이 완료되었으며 아직 앱이 설치되어 있지 않으면 앱을 다운로드하고, 그렇지 않으면 앱을 열고 시작합니다. 사용할 수 있습니다.
이 기능을 시작하려면 호환 앱의 패키지 이름을 기기 세부정보를 콘솔에서 확인하세요.
빠른 페어링으로 실행되는 호환 앱에는 두 가지 추가 데이터 요소가 포함됩니다.
android.bluetooth.device.extra.DEVICE
- 블루투스 기기 알림을 트리거한 것이죠.com.google.android.gms.nearby.discovery.fastpair.MODEL_ID
~a 페어링된java.lang.String
의 모델 ID를 나타냅니다. 있습니다.
설정 슬라이스 통합
Slice는 호환 앱에서 사용할 수 있는 옵션을 더욱 향상하기 위해 블루투스 설정 페이지
SliceProvider 호환 앱에서 구현해야 합니다. 거기 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) {
...
}
각 Slice에는 제목, 부제목, 아이콘, 작업이 있어야 합니다.
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
다이제스트 <ph type="x-smartling-placeholder">- </ph>
- apksigner를 사용하여 SHA-256 다이제스트를 가져올 수 있습니다.
펌웨어 업데이트 인텐트
연결된 기기의 펌웨어 버전이 오래된 경우
기기 콘솔에서 구성된 펌웨어 버전과 다른 경우
빠른 페어링은 다음과 같이 호환 앱에 알립니다.
인텐트 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
로 연결