ファスト ペアリングにより、OEM のコンパニオン アプリをペアリングに深く統合して、 経験も求められます必要に応じて複数の統合ポイントを ファスト ペアリング完了後のユーザーの関心を引きます。
Out-Of-Box Experience(OOBE)中のインストール
ファスト ペアリングを使用すると、ヘッドセットのコンパニオン アプリを Out-Of-Box Experience(OOBE)の最後のステップです。これは次の形式でユーザーに提示されます。 ペア設定が終了したことと、 アプリをまだインストールしていない場合はダウンロードするか、アプリを開いて できます。
この機能を利用するには、コンパニオン アプリのパッケージ名を コンソールでデバイスの詳細を確認してください。
ファスト ペアリングで起動するコンパニオン アプリには、次の 2 つの追加データ要素が含まれます。
android.bluetooth.device.extra.DEVICE
- Bluetooth デバイス アラートをトリガーしますcom.google.android.gms.nearby.discovery.fastpair.MODEL_ID
- a ペアのモデル ID を表すjava.lang.String
ダウンロードします
設定スライスの統合
スライスは コンパニオン アプリを拡充することで、デバイスで使用可能なオプションを Bluetooth 設定ページ。
SliceProvider。 設定スライスを提供するには、コンパニオン アプリで実装する必要があります。そこで、 OOBE スライスと汎用設定項目の 2 種類のスライスがあります。「 ユーザーがまだヘッドセットを設定していない場合は、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
ダイジェスト <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
に設定