Address API review feedback.
* Byte array parameters have no format specification.
* Consider using more appropriate types (e.g. Icon for setImage) or if not possible, specify the format.
* Request javadoc needs to explain what is being requested.
* getModelId has no documentation of the format of the result array.
* FastPairDeviceMetadata: javadoc needs to explain what is being returned by each method
Bug: 218682005
Test: existing CTS/UNIT test
Change-Id: I50ab7835bd366efc32a8548ebfb1855e7b0ba970
diff --git a/nearby/framework/java/android/nearby/FastPairAccountKeyDeviceMetadata.java b/nearby/framework/java/android/nearby/FastPairAccountKeyDeviceMetadata.java
index 8861d90..160ad75 100644
--- a/nearby/framework/java/android/nearby/FastPairAccountKeyDeviceMetadata.java
+++ b/nearby/framework/java/android/nearby/FastPairAccountKeyDeviceMetadata.java
@@ -37,8 +37,12 @@
/**
* Get Device Account Key, which uniquely identifies a Fast Pair device associated with an
- * account.
+ * account. AccountKey is 16 bytes: first byte is 0x04. Other 15 bytes are randomly generated.
+ *
+ * @return 16-byte Account Key.
+ * @hide
*/
+ @SystemApi
@Nullable
public byte[] getDeviceAccountKey() {
return mMetadataParcel.deviceAccountKey;
@@ -46,8 +50,12 @@
/**
* Get a hash value of device's account key and public bluetooth address without revealing the
- * public bluetooth address.
+ * public bluetooth address. Sha256 hash value is 32 bytes.
+ *
+ * @return 32-byte Sha256 hash value.
+ * @hide
*/
+ @SystemApi
@Nullable
public byte[] getSha256DeviceAccountKeyPublicAddress() {
return mMetadataParcel.sha256DeviceAccountKeyPublicAddress;
@@ -55,7 +63,10 @@
/**
* Get metadata of a Fast Pair device type.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public FastPairDeviceMetadata getFastPairDeviceMetadata() {
if (mMetadataParcel.metadata == null) {
@@ -66,7 +77,10 @@
/**
* Get Fast Pair discovery item, which is tied to both the device type and the account.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public FastPairDiscoveryItem getFastPairDiscoveryItem() {
if (mMetadataParcel.discoveryItem == null) {
@@ -77,14 +91,20 @@
/**
* Builder used to create FastPairAccountKeyDeviceMetadata.
+ *
+ * @hide
*/
+ @SystemApi
public static final class Builder {
private final FastPairAccountKeyDeviceMetadataParcel mBuilderParcel;
/**
* Default constructor of Builder.
+ *
+ * @hide
*/
+ @SystemApi
public Builder() {
mBuilderParcel = new FastPairAccountKeyDeviceMetadataParcel();
mBuilderParcel.deviceAccountKey = null;
@@ -96,9 +116,12 @@
/**
* Set Account Key.
*
- * @param deviceAccountKey Fast Pair device account key.
+ * @param deviceAccountKey Fast Pair device account key, which is 16 bytes: first byte is
+ * 0x04. Next 15 bytes are randomly generated.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDeviceAccountKey(@Nullable byte[] deviceAccountKey) {
mBuilderParcel.deviceAccountKey = deviceAccountKey;
@@ -106,12 +129,14 @@
}
/**
- * Set sha256 account key and public address.
+ * Set sha256 hash value of account key and public bluetooth address.
*
- * @param sha256DeviceAccountKeyPublicAddress Hash value of device's account key and public
- * address.
+ * @param sha256DeviceAccountKeyPublicAddress 32-byte sha256 hash value of account key and
+ * public bluetooth address.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setSha256DeviceAccountKeyPublicAddress(
@Nullable byte[] sha256DeviceAccountKeyPublicAddress) {
@@ -126,7 +151,9 @@
*
* @param metadata Fast Pair metadata.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setFastPairDeviceMetadata(@Nullable FastPairDeviceMetadata metadata) {
if (metadata == null) {
@@ -142,7 +169,9 @@
*
* @param discoveryItem Fast Pair discovery item.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setFastPairDiscoveryItem(@Nullable FastPairDiscoveryItem discoveryItem) {
if (discoveryItem == null) {
@@ -155,7 +184,10 @@
/**
* Build {@link FastPairAccountKeyDeviceMetadata} with the currently set configuration.
+ *
+ * @hide
*/
+ @SystemApi
@NonNull
public FastPairAccountKeyDeviceMetadata build() {
return new FastPairAccountKeyDeviceMetadata(mBuilderParcel);
diff --git a/nearby/framework/java/android/nearby/FastPairAntispoofKeyDeviceMetadata.java b/nearby/framework/java/android/nearby/FastPairAntispoofKeyDeviceMetadata.java
index ace00d4..1837671 100644
--- a/nearby/framework/java/android/nearby/FastPairAntispoofKeyDeviceMetadata.java
+++ b/nearby/framework/java/android/nearby/FastPairAntispoofKeyDeviceMetadata.java
@@ -17,7 +17,6 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.nearby.aidl.FastPairAntispoofKeyDeviceMetadataParcel;
@@ -62,14 +61,20 @@
/**
* Builder used to create FastPairAntispoofkeyDeviceMetadata.
+ *
+ * @hide
*/
+ @SystemApi
public static final class Builder {
private final FastPairAntispoofKeyDeviceMetadataParcel mBuilderParcel;
/**
* Default constructor of Builder.
+ *
+ * @hide
*/
+ @SystemApi
public Builder() {
mBuilderParcel = new FastPairAntispoofKeyDeviceMetadataParcel();
mBuilderParcel.antispoofPublicKey = null;
@@ -79,10 +84,11 @@
/**
* Set AntiSpoof public key, which uniquely identify a Fast Pair device type.
*
- * @param antispoofPublicKey AntiSpoof public key.
+ * @param antispoofPublicKey is 64 bytes, see <a href="https://developers.google.com/nearby/fast-pair/spec#data_format">Data Format</a>.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
- @SuppressLint("MissingGetterMatchingBuilder")
+ @SystemApi
@NonNull
public Builder setAntispoofPublicKey(@Nullable byte[] antispoofPublicKey) {
mBuilderParcel.antispoofPublicKey = antispoofPublicKey;
@@ -95,8 +101,9 @@
*
* @param metadata Fast Pair device meta data.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
- @SuppressLint("MissingGetterMatchingBuilder")
+ @SystemApi
@NonNull
public Builder setFastPairDeviceMetadata(@Nullable FastPairDeviceMetadata metadata) {
if (metadata != null) {
@@ -109,7 +116,10 @@
/**
* Build {@link FastPairAntispoofKeyDeviceMetadata} with the currently set configuration.
+ *
+ * @hide
*/
+ @SystemApi
@NonNull
public FastPairAntispoofKeyDeviceMetadata build() {
return new FastPairAntispoofKeyDeviceMetadata(mBuilderParcel);
diff --git a/nearby/framework/java/android/nearby/FastPairDataProviderBase.java b/nearby/framework/java/android/nearby/FastPairDataProviderBase.java
index abf0857..6aba3e3 100644
--- a/nearby/framework/java/android/nearby/FastPairDataProviderBase.java
+++ b/nearby/framework/java/android/nearby/FastPairDataProviderBase.java
@@ -62,17 +62,27 @@
/**
* The action the wrapping service should have in its intent filter to implement the
* {@link android.nearby.FastPairDataProviderBase}.
+ *
+ * @hide
*/
+ @SystemApi
public static final String ACTION_FAST_PAIR_DATA_PROVIDER =
"android.nearby.action.FAST_PAIR_DATA_PROVIDER";
/**
* Manage request type to add, or opt-in.
+ *
+ * @hide
*/
+ @SystemApi
public static final int MANAGE_REQUEST_ADD = 0;
+
/**
* Manage request type to remove, or opt-out.
+ *
+ * @hide
*/
+ @SystemApi
public static final int MANAGE_REQUEST_REMOVE = 1;
/**
@@ -84,9 +94,22 @@
MANAGE_REQUEST_REMOVE})
@interface ManageRequestType {}
-
+ /**
+ * Error code for bad request.
+ *
+ * @hide
+ */
+ @SystemApi
public static final int ERROR_CODE_BAD_REQUEST = 0;
+
+ /**
+ * Error code for internal error.
+ *
+ * @hide
+ */
+ @SystemApi
public static final int ERROR_CODE_INTERNAL_ERROR = 1;
+
/**
* @hide
*/
@@ -103,7 +126,9 @@
* Constructor of FastPairDataProviderBase.
*
* @param tag TAG for on device logging.
+ * @hide
*/
+ @SystemApi
public FastPairDataProviderBase(@NonNull String tag) {
mBinder = new Service();
mTag = tag;
@@ -111,61 +136,110 @@
/**
* Callback to be invoked when an AntispoofKeyed device metadata is loaded.
+ *
+ * @hide
*/
+ @SystemApi
public interface FastPairAntispoofKeyDeviceMetadataCallback {
/**
* Invoked once the meta data is loaded.
+ *
+ * @hide
*/
+ @SystemApi
void onFastPairAntispoofKeyDeviceMetadataReceived(
@NonNull FastPairAntispoofKeyDeviceMetadata metadata);
- /** Invoked in case of error. */
+
+ /** Invoked in case of error.
+ *
+ * @hide
+ */
+ @SystemApi
void onError(@ErrorCode int code, @Nullable String message);
}
/**
* Callback to be invoked when Fast Pair devices of a given account is loaded.
+ *
+ * @hide
*/
+ @SystemApi
public interface FastPairAccountDevicesMetadataCallback {
/**
* Should be invoked once the metadatas are loaded.
+ *
+ * @hide
*/
+ @SystemApi
void onFastPairAccountDevicesMetadataReceived(
@NonNull Collection<FastPairAccountKeyDeviceMetadata> metadatas);
- /** Invoked in case of error. */
+ /**
+ * Invoked in case of error.
+ *
+ * @hide
+ */
+ @SystemApi
void onError(@ErrorCode int code, @Nullable String message);
}
- /** Callback to be invoked when FastPair eligible accounts are loaded. */
+ /**
+ * Callback to be invoked when FastPair eligible accounts are loaded.
+ *
+ * @hide
+ */
+ @SystemApi
public interface FastPairEligibleAccountsCallback {
/**
* Should be invoked once the eligible accounts are loaded.
+ *
+ * @hide
*/
+ @SystemApi
void onFastPairEligibleAccountsReceived(
@NonNull Collection<FastPairEligibleAccount> accounts);
- /** Invoked in case of error. */
+ /**
+ * Invoked in case of error.
+ *
+ * @hide
+ */
+ @SystemApi
void onError(@ErrorCode int code, @Nullable String message);
}
/**
* Callback to be invoked when a management action is finished.
+ *
+ * @hide
*/
+ @SystemApi
public interface FastPairManageActionCallback {
/**
* Should be invoked once the manage action is successful.
+ *
+ * @hide
*/
+ @SystemApi
void onSuccess();
- /** Invoked in case of error. */
+ /**
+ * Invoked in case of error.
+ *
+ * @hide
+ */
+ @SystemApi
void onError(@ErrorCode int code, @Nullable String message);
}
/**
* Fulfills the Fast Pair device metadata request by using callback to send back the
* device meta data of a given modelId.
+ *
+ * @hide
*/
+ @SystemApi
public abstract void onLoadFastPairAntispoofKeyDeviceMetadata(
@NonNull FastPairAntispoofKeyDeviceMetadataRequest request,
@NonNull FastPairAntispoofKeyDeviceMetadataCallback callback);
@@ -173,28 +247,41 @@
/**
* Fulfills the account tied Fast Pair devices metadata request by using callback to send back
* all Fast Pair device's metadata of a given account.
+ *
+ * @hide
*/
+ @SystemApi
public abstract void onLoadFastPairAccountDevicesMetadata(
@NonNull FastPairAccountDevicesMetadataRequest request,
@NonNull FastPairAccountDevicesMetadataCallback callback);
/**
* Fulfills the Fast Pair eligible accounts request by using callback to send back Fast Pair
- * eligible accounts */
+ * eligible accounts.
+ *
+ * @hide
+ */
+ @SystemApi
public abstract void onLoadFastPairEligibleAccounts(
@NonNull FastPairEligibleAccountsRequest request,
@NonNull FastPairEligibleAccountsCallback callback);
/**
* Fulfills the Fast Pair account management request by using callback to send back result.
+ *
+ * @hide
*/
+ @SystemApi
public abstract void onManageFastPairAccount(
@NonNull FastPairManageAccountRequest request,
@NonNull FastPairManageActionCallback callback);
/**
* Fulfills the request to manage device-account mapping by using callback to send back result.
+ *
+ * @hide
*/
+ @SystemApi
public abstract void onManageFastPairAccountDevice(
@NonNull FastPairManageAccountDeviceRequest request,
@NonNull FastPairManageActionCallback callback);
@@ -202,14 +289,22 @@
/**
* Returns the IBinder instance that should be returned from the {@link
* android.app.Service#onBind(Intent)} method of the wrapping service.
+ *
+ * @hide
*/
+ @SystemApi
public final @Nullable IBinder getBinder() {
return mBinder;
}
/**
- * Class for reading FastPairAntispoofKeyDeviceMetadataRequest.
+ * Class for reading FastPairAntispoofKeyDeviceMetadataRequest, which specifies the model ID of
+ * a Fast Pair device. To fulfill this request, corresponding
+ * {@link FastPairAntispoofKeyDeviceMetadata} should be fetched and returned.
+ *
+ * @hide
*/
+ @SystemApi
public static class FastPairAntispoofKeyDeviceMetadataRequest {
private final FastPairAntispoofKeyDeviceMetadataRequestParcel mMetadataRequestParcel;
@@ -219,7 +314,17 @@
this.mMetadataRequestParcel = metaDataRequestParcel;
}
- /** Get modelId, the key for FastPairAntispoofKeyDeviceMetadata. */
+ /**
+ * Get modelId (24 bit), the key for FastPairAntispoofKeyDeviceMetadata in the same format
+ * returned by Google at device registration time.
+ *
+ * ModelId format is defined at device registration time, see
+ * <a href="https://developers.google.com/nearby/fast-pair/spec#model_id">Model ID</a>.
+ * @return raw bytes of modelId in the same format returned by Google at device registration
+ * time.
+ * @hide
+ */
+ @SystemApi
public @NonNull byte[] getModelId() {
return this.mMetadataRequestParcel.modelId;
}
@@ -238,7 +343,9 @@
*
* To retrieve metadata of a selected list of Fast Pair devices saved to an account, the caller
* needs to set account with a non-empty allow list.
+ * @hide
*/
+ @SystemApi
public static class FastPairAccountDevicesMetadataRequest {
private final FastPairAccountDevicesMetadataRequestParcel mMetadataRequestParcel;
@@ -252,7 +359,9 @@
* Get FastPair account, whose Fast Pair devices' metadata is requested.
*
* @return a FastPair account.
+ * @hide
*/
+ @SystemApi
public @NonNull Account getAccount() {
return this.mMetadataRequestParcel.account;
}
@@ -262,8 +371,12 @@
* Note that as a special case, empty list actually means all FastPair devices under the
* account instead of none.
*
+ * DeviceAccountKey is 16 bytes: first byte is 0x04. Other 15 bytes are randomly generated.
+ *
* @return allowlist of Fast Pair devices using a collection of deviceAccountKeys.
+ * @hide
*/
+ @SystemApi
public @NonNull Collection<byte[]> getDeviceAccountKeys() {
if (this.mMetadataRequestParcel.deviceAccountKeys == null) {
return new ArrayList<byte[]>(0);
@@ -277,7 +390,13 @@
}
}
- /** Class for reading FastPairEligibleAccountsRequest. */
+ /**
+ * Class for reading FastPairEligibleAccountsRequest. Upon receiving this request, Fast Pair
+ * eligible accounts should be returned to bind Fast Pair devices.
+ *
+ * @hide
+ */
+ @SystemApi
public static class FastPairEligibleAccountsRequest {
@SuppressWarnings("UnusedVariable")
private final FastPairEligibleAccountsRequestParcel mAccountsRequestParcel;
@@ -288,7 +407,15 @@
}
}
- /** Class for reading FastPairManageAccountRequest. */
+ /**
+ * Class for reading FastPairManageAccountRequest. If the request type is MANAGE_REQUEST_ADD,
+ * the account is enabled to bind Fast Pair devices; If the request type is
+ * MANAGE_REQUEST_REMOVE, the account is disabled to bind more Fast Pair devices. Furthermore,
+ * all existing bounded Fast Pair devices are unbounded.
+ *
+ * @hide
+ */
+ @SystemApi
public static class FastPairManageAccountRequest {
private final FastPairManageAccountRequestParcel mAccountRequestParcel;
@@ -298,17 +425,35 @@
this.mAccountRequestParcel = accountRequestParcel;
}
- /** Get request type: MANAGE_REQUEST_ADD, or MANAGE_REQUEST_REMOVE. */
+ /**
+ * Get request type: MANAGE_REQUEST_ADD, or MANAGE_REQUEST_REMOVE.
+ *
+ * @hide
+ */
+ @SystemApi
public @ManageRequestType int getRequestType() {
return this.mAccountRequestParcel.requestType;
}
- /** Get account. */
+ /**
+ * Get account.
+ *
+ * @hide
+ */
+ @SystemApi
public @NonNull Account getAccount() {
return this.mAccountRequestParcel.account;
}
}
- /** Class for reading FastPairManageAccountDeviceRequest. */
+ /**
+ * Class for reading FastPairManageAccountDeviceRequest. If the request type is
+ * MANAGE_REQUEST_ADD, then a Fast Pair device is bounded to a Fast Pair account. If the
+ * request type is MANAGE_REQUEST_REMOVE, then a Fast Pair device is removed from a Fast Pair
+ * account.
+ *
+ * @hide
+ */
+ @SystemApi
public static class FastPairManageAccountDeviceRequest {
private final FastPairManageAccountDeviceRequestParcel mRequestParcel;
@@ -318,19 +463,39 @@
this.mRequestParcel = requestParcel;
}
- /** Get request type: MANAGE_REQUEST_ADD, or MANAGE_REQUEST_REMOVE. */
+ /**
+ * Get request type: MANAGE_REQUEST_ADD, or MANAGE_REQUEST_REMOVE.
+ *
+ * @hide
+ */
+ @SystemApi
public @ManageRequestType int getRequestType() {
return this.mRequestParcel.requestType;
}
- /** Get account. */
+ /**
+ * Get account.
+ *
+ * @hide
+ */
+ @SystemApi
public @NonNull Account getAccount() {
return this.mRequestParcel.account;
}
- /** Get BleAddress. */
+ /**
+ * Get BleAddress.
+ *
+ * @hide
+ */
+ @SystemApi
public @Nullable String getBleAddress() {
return this.mRequestParcel.bleAddress;
}
- /** Get account key device metadata. */
+ /**
+ * Get account key device metadata.
+ *
+ * @hide
+ */
+ @SystemApi
public @NonNull FastPairAccountKeyDeviceMetadata getAccountKeyDeviceMetadata() {
return new FastPairAccountKeyDeviceMetadata(
this.mRequestParcel.accountKeyDeviceMetadata);
diff --git a/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java b/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java
index c051eb0..ea75271 100644
--- a/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java
+++ b/nearby/framework/java/android/nearby/FastPairDeviceMetadata.java
@@ -37,53 +37,79 @@
}
/**
- * Get ImageUlr.
+ * Get ImageUrl, which will be displayed in notification.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getImageUrl() {
return mMetadataParcel.imageUrl;
}
/**
- * Get IntentUri.
+ * Get IntentUri, which will be launched to install companion app.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getIntentUri() {
return mMetadataParcel.intentUri;
}
/**
- * Get ble transmission power.
+ * Get BLE transmit power, as described in Fast Pair spec, see
+ * <a href="https://developers.google.com/nearby/fast-pair/spec#transmit_power">Transmit Power</a>
+ *
+ * @hide
*/
+ @SystemApi
public int getBleTxPower() {
return mMetadataParcel.bleTxPower;
}
/**
- * Get trigger distance.
+ * Get Fast Pair Half Sheet trigger distance in meters.
+ *
+ * @hide
*/
+ @SystemApi
public float getTriggerDistance() {
return mMetadataParcel.triggerDistance;
}
/**
- * Get image.
+ * Get Fast Pair device image, which is submitted at device registration time to display on
+ * notification. It is a 32-bit PNG with dimensions of 512px by 512px.
+ *
+ * @return Fast Pair device image in 32-bit PNG with dimensions of 512px by 512px.
+ * @hide
*/
+ @SystemApi
@Nullable
public byte[] getImage() {
return mMetadataParcel.image;
}
/**
- * Get device type.
+ * Get Fast Pair device type.
+ * DEVICE_TYPE_UNSPECIFIED = 0;
+ * HEADPHONES = 1;
+ * TRUE_WIRELESS_HEADPHONES = 7;
+ * @hide
*/
+ @SystemApi
public int getDeviceType() {
return mMetadataParcel.deviceType;
}
/**
- * Get device name.
+ * Get Fast Pair device name. e.g., "Pixel Buds A-Series".
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getName() {
return mMetadataParcel.name;
@@ -91,7 +117,10 @@
/**
* Get true wireless image url for left bud.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getTrueWirelessImageUrlLeftBud() {
return mMetadataParcel.trueWirelessImageUrlLeftBud;
@@ -99,7 +128,10 @@
/**
* Get true wireless image url for right bud.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getTrueWirelessImageUrlRightBud() {
return mMetadataParcel.trueWirelessImageUrlRightBud;
@@ -107,62 +139,89 @@
/**
* Get true wireless image url for case.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getTrueWirelessImageUrlCase() {
return mMetadataParcel.trueWirelessImageUrlCase;
}
/**
- * Get Locale.
+ * Get Locale of the device.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getLocale() {
return mMetadataParcel.locale;
}
/**
- * Get InitialNotificationDescription.
+ * Get InitialNotificationDescription, which is a translated string of
+ * "Tap to pair. Earbuds will be tied to %s" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getInitialNotificationDescription() {
return mMetadataParcel.initialNotificationDescription;
}
/**
- * Get InitialNotificationDescriptionNoAccount.
+ * Get InitialNotificationDescriptionNoAccount, which is a translated string of
+ * "Tap to pair with this device" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getInitialNotificationDescriptionNoAccount() {
return mMetadataParcel.initialNotificationDescriptionNoAccount;
}
/**
- * Get OpenCompanionAppDescription.
+ * Get OpenCompanionAppDescription, which is a translated string of
+ * "Tap to finish setup" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getOpenCompanionAppDescription() {
return mMetadataParcel.openCompanionAppDescription;
}
/**
- * Get UpdateCompanionAppDescription.
+ * Get UpdateCompanionAppDescription, which is a translated string of
+ * "Tap to update device settings and finish setup" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getUpdateCompanionAppDescription() {
return mMetadataParcel.updateCompanionAppDescription;
}
/**
- * Get DownloadCompanionAppDescription.
+ * Get DownloadCompanionAppDescription, which is a translated string of
+ * "Tap to download device app on Google Play and see all features" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getDownloadCompanionAppDescription() {
return mMetadataParcel.downloadCompanionAppDescription;
}
/**
- * Get UnableToConnectTitle.
+ * Get UnableToConnectTitle, which is a translated string of
+ * "Unable to connect" based on locale.
*/
@Nullable
public String getUnableToConnectTitle() {
@@ -170,136 +229,201 @@
}
/**
- * Get UnableToConnectDescription.
+ * Get UnableToConnectDescription, which is a translated string of
+ * "Try manually pairing to the device" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getUnableToConnectDescription() {
return mMetadataParcel.unableToConnectDescription;
}
/**
- * Get InitialPairingDescription.
+ * Get InitialPairingDescription, which is a translated string of
+ * "%s will appear on devices linked with %s" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getInitialPairingDescription() {
return mMetadataParcel.initialPairingDescription;
}
/**
- * Get ConnectSuccessCompanionAppInstalled.
+ * Get ConnectSuccessCompanionAppInstalled, which is a translated string of
+ * "Your device is ready to be set up" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getConnectSuccessCompanionAppInstalled() {
return mMetadataParcel.connectSuccessCompanionAppInstalled;
}
/**
- * Get ConnectSuccessCompanionAppNotInstalled.
+ * Get ConnectSuccessCompanionAppNotInstalled, which is a translated string of
+ * "Download the device app on Google Play to see all available features" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getConnectSuccessCompanionAppNotInstalled() {
return mMetadataParcel.connectSuccessCompanionAppNotInstalled;
}
/**
- * Get SubsequentPairingDescription.
+ * Get SubsequentPairingDescription, which is a translated string of
+ * "Connect %s to this phone" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getSubsequentPairingDescription() {
return mMetadataParcel.subsequentPairingDescription;
}
/**
- * Get RetroactivePairingDescription.
+ * Get RetroactivePairingDescription, which is a translated string of
+ * "Save device to %s for faster pairing to your other devices" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getRetroactivePairingDescription() {
return mMetadataParcel.retroactivePairingDescription;
}
/**
- * Get WaitLaunchCompanionAppDescription.
+ * Get WaitLaunchCompanionAppDescription, which is a translated string of
+ * "This will take a few moments" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getWaitLaunchCompanionAppDescription() {
return mMetadataParcel.waitLaunchCompanionAppDescription;
}
/**
- * Get FailConnectGoToSettingsDescription.
+ * Get FailConnectGoToSettingsDescription, which is a translated string of
+ * "Try manually pairing to the device by going to Settings" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getFailConnectGoToSettingsDescription() {
return mMetadataParcel.failConnectGoToSettingsDescription;
}
/**
- * Get ConfirmPinTitle.
+ * Get ConfirmPinTitle, which is a translated string of
+ * based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getConfirmPinTitle() {
return mMetadataParcel.confirmPinTitle;
}
/**
- * Get ConfirmPinDescription.
+ * Get ConfirmPinDescription, which is a translated string of "confirm pin" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getConfirmPinDescription() {
return mMetadataParcel.confirmPinDescription;
}
/**
- * Get SyncContactsTitle.
+ * Get SyncContactsTitle, which is a translated string of "sync contacts title" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getSyncContactsTitle() {
return mMetadataParcel.syncContactsTitle;
}
/**
- * Get SyncContactsDescription.
+ * Get SyncContactsDescription, which is a translated string of "sync contacts description"
+ * based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getSyncContactsDescription() {
return mMetadataParcel.syncContactsDescription;
}
/**
- * Get SyncSmsTitle.
+ * Get SyncSmsTitle, which is a translated string of "sync sms title" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getSyncSmsTitle() {
return mMetadataParcel.syncSmsTitle;
}
/**
- * Get SyncSmsDescription.
+ * Get SyncSmsDescription, which is a translated string of "sync sms description" based on
+ * locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getSyncSmsDescription() {
return mMetadataParcel.syncSmsDescription;
}
/**
- * Get AssistantSetupHalfSheet.
+ * Get AssistantSetupHalfSheet, which is a translated string of
+ * "Tap to set up your Google Assistant" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getAssistantSetupHalfSheet() {
return mMetadataParcel.assistantSetupHalfSheet;
}
/**
- * Get AssistantSetupNotification.
+ * Get AssistantSetupNotification, which is a translated string of
+ * "Tap to set up your Google Assistant" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getAssistantSetupNotification() {
return mMetadataParcel.assistantSetupNotification;
}
/**
- * Get FastPairTvConnectDeviceNoAccountDescription.
+ * Get FastPairTvConnectDeviceNoAccountDescription, which is a translated string of
+ * "Select connect to pair your %s with this device" based on locale.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getFastPairTvConnectDeviceNoAccountDescription() {
return mMetadataParcel.fastPairTvConnectDeviceNoAccountDescription;
@@ -307,14 +431,20 @@
/**
* Builder used to create FastPairDeviceMetadata.
+ *
+ * @hide
*/
+ @SystemApi
public static final class Builder {
private final FastPairDeviceMetadataParcel mBuilderParcel;
/**
* Default constructor of Builder.
+ *
+ * @hide
*/
+ @SystemApi
public Builder() {
mBuilderParcel = new FastPairDeviceMetadataParcel();
mBuilderParcel.imageUrl = null;
@@ -358,7 +488,9 @@
*
* @param imageUrl Image Ulr.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setImageUrl(@Nullable String imageUrl) {
mBuilderParcel.imageUrl = imageUrl;
@@ -370,7 +502,9 @@
*
* @param intentUri Intent uri.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setIntentUri(@Nullable String intentUri) {
mBuilderParcel.intentUri = intentUri;
@@ -382,7 +516,9 @@
*
* @param name Device name.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setName(@Nullable String name) {
mBuilderParcel.name = name;
@@ -394,8 +530,9 @@
*
* @param bleTxPower Ble transmission power.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
-
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setBleTxPower(int bleTxPower) {
mBuilderParcel.bleTxPower = bleTxPower;
@@ -407,7 +544,9 @@
*
* @param triggerDistance Fast Pair trigger distance.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTriggerDistance(float triggerDistance) {
mBuilderParcel.triggerDistance = triggerDistance;
@@ -417,9 +556,13 @@
/**
* Set image.
*
- * @param image Fast Pair device image.
+ * @param image Fast Pair device image, which is submitted at device registration time to
+ * display on notification. It is a 32-bit PNG with dimensions of
+ * 512px by 512px.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setImage(@Nullable byte[] image) {
mBuilderParcel.image = image;
@@ -431,7 +574,9 @@
*
* @param deviceType Fast Pair device type.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDeviceType(int deviceType) {
mBuilderParcel.deviceType = deviceType;
@@ -443,7 +588,9 @@
*
* @param trueWirelessImageUrlLeftBud True wireless image url for left bud.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTrueWirelessImageUrlLeftBud(
@Nullable String trueWirelessImageUrlLeftBud) {
@@ -456,7 +603,9 @@
*
* @param trueWirelessImageUrlRightBud True wireless image url for right bud.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTrueWirelessImageUrlRightBud(
@Nullable String trueWirelessImageUrlRightBud) {
@@ -469,7 +618,9 @@
*
* @param trueWirelessImageUrlCase True wireless image url for case.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTrueWirelessImageUrlCase(@Nullable String trueWirelessImageUrlCase) {
mBuilderParcel.trueWirelessImageUrlCase = trueWirelessImageUrlCase;
@@ -481,7 +632,9 @@
*
* @param locale Device locale.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setLocale(@Nullable String locale) {
mBuilderParcel.locale = locale;
@@ -493,7 +646,9 @@
*
* @param initialNotificationDescription Initial notification description.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setInitialNotificationDescription(
@Nullable String initialNotificationDescription) {
@@ -507,7 +662,9 @@
* @param initialNotificationDescriptionNoAccount Initial notification description when
* account is not present.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setInitialNotificationDescriptionNoAccount(
@Nullable String initialNotificationDescriptionNoAccount) {
@@ -521,7 +678,9 @@
*
* @param openCompanionAppDescription Description for opening companion app.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setOpenCompanionAppDescription(
@Nullable String openCompanionAppDescription) {
@@ -534,7 +693,9 @@
*
* @param updateCompanionAppDescription Description for updating companion app.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setUpdateCompanionAppDescription(
@Nullable String updateCompanionAppDescription) {
@@ -547,7 +708,9 @@
*
* @param downloadCompanionAppDescription Description for downloading companion app.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDownloadCompanionAppDescription(
@Nullable String downloadCompanionAppDescription) {
@@ -560,7 +723,9 @@
*
* @param unableToConnectTitle Title when Fast Pair device is unable to be connected to.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setUnableToConnectTitle(@Nullable String unableToConnectTitle) {
mBuilderParcel.unableToConnectTitle = unableToConnectTitle;
@@ -573,7 +738,9 @@
* @param unableToConnectDescription Description when Fast Pair device is unable to be
* connected to.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setUnableToConnectDescription(
@Nullable String unableToConnectDescription) {
@@ -586,7 +753,9 @@
*
* @param initialPairingDescription Description for Fast Pair initial pairing.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setInitialPairingDescription(@Nullable String initialPairingDescription) {
mBuilderParcel.initialPairingDescription = initialPairingDescription;
@@ -599,7 +768,9 @@
* @param connectSuccessCompanionAppInstalled Description that let user open the companion
* app.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setConnectSuccessCompanionAppInstalled(
@Nullable String connectSuccessCompanionAppInstalled) {
@@ -614,7 +785,9 @@
* @param connectSuccessCompanionAppNotInstalled Description that let user download the
* companion app.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setConnectSuccessCompanionAppNotInstalled(
@Nullable String connectSuccessCompanionAppNotInstalled) {
@@ -629,7 +802,9 @@
* @param subsequentPairingDescription Description that reminds user there is a paired
* device nearby.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setSubsequentPairingDescription(
@Nullable String subsequentPairingDescription) {
@@ -642,7 +817,9 @@
*
* @param retroactivePairingDescription Description that reminds users opt in their device.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setRetroactivePairingDescription(
@Nullable String retroactivePairingDescription) {
@@ -656,7 +833,9 @@
* @param waitLaunchCompanionAppDescription Description that indicates companion app is
* about to launch.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setWaitLaunchCompanionAppDescription(
@Nullable String waitLaunchCompanionAppDescription) {
@@ -671,7 +850,9 @@
* @param failConnectGoToSettingsDescription Description that indicates go to bluetooth
* settings when connection fail.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setFailConnectGoToSettingsDescription(
@Nullable String failConnectGoToSettingsDescription) {
@@ -685,7 +866,9 @@
*
* @param confirmPinTitle Title of the UI to ask the user to confirm the pin code.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setConfirmPinTitle(@Nullable String confirmPinTitle) {
mBuilderParcel.confirmPinTitle = confirmPinTitle;
@@ -698,7 +881,9 @@
* @param confirmPinDescription Description of the UI to ask the user to confirm the pin
* code.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setConfirmPinDescription(@Nullable String confirmPinDescription) {
mBuilderParcel.confirmPinDescription = confirmPinDescription;
@@ -710,7 +895,9 @@
*
* @param syncContactsTitle Title of the UI to ask the user to confirm to sync contacts.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setSyncContactsTitle(@Nullable String syncContactsTitle) {
mBuilderParcel.syncContactsTitle = syncContactsTitle;
@@ -722,7 +909,9 @@
*
* @param syncContactsDescription Description of the UI to ask the user to confirm to sync
* contacts.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setSyncContactsDescription(@Nullable String syncContactsDescription) {
mBuilderParcel.syncContactsDescription = syncContactsDescription;
@@ -734,7 +923,9 @@
*
* @param syncSmsTitle Title of the UI to ask the user to confirm to sync SMS.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setSyncSmsTitle(@Nullable String syncSmsTitle) {
mBuilderParcel.syncSmsTitle = syncSmsTitle;
@@ -746,7 +937,9 @@
*
* @param syncSmsDescription Description of the UI to ask the user to confirm to sync SMS.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setSyncSmsDescription(@Nullable String syncSmsDescription) {
mBuilderParcel.syncSmsDescription = syncSmsDescription;
@@ -759,7 +952,9 @@
* @param assistantSetupHalfSheet Description in half sheet to ask user setup google
* assistant.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setAssistantSetupHalfSheet(@Nullable String assistantSetupHalfSheet) {
mBuilderParcel.assistantSetupHalfSheet = assistantSetupHalfSheet;
@@ -772,7 +967,9 @@
* @param assistantSetupNotification Description in notification to ask user setup google
* assistant.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setAssistantSetupNotification(
@Nullable String assistantSetupNotification) {
@@ -787,7 +984,9 @@
* action on TV, when user is not logged
* in.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setFastPairTvConnectDeviceNoAccountDescription(
@Nullable String fastPairTvConnectDeviceNoAccountDescription) {
@@ -798,7 +997,10 @@
/**
* Build {@link FastPairDeviceMetadata} with the currently set configuration.
+ *
+ * @hide
*/
+ @SystemApi
@NonNull
public FastPairDeviceMetadata build() {
return new FastPairDeviceMetadata(mBuilderParcel);
diff --git a/nearby/framework/java/android/nearby/FastPairDiscoveryItem.java b/nearby/framework/java/android/nearby/FastPairDiscoveryItem.java
index e75dca6..bc6a6f8 100644
--- a/nearby/framework/java/android/nearby/FastPairDiscoveryItem.java
+++ b/nearby/framework/java/android/nearby/FastPairDiscoveryItem.java
@@ -38,7 +38,10 @@
/**
* Get Id.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getId() {
return mMetadataParcel.id;
@@ -46,14 +49,20 @@
/**
* Get Type.
+ *
+ * @hide
*/
+ @SystemApi
public int getType() {
return mMetadataParcel.type;
}
/**
* Get MacAddress.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getMacAddress() {
return mMetadataParcel.macAddress;
@@ -61,7 +70,10 @@
/**
* Get ActionUrl.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getActionUrl() {
return mMetadataParcel.actionUrl;
@@ -69,7 +81,10 @@
/**
* Get DeviceName.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getDeviceName() {
return mMetadataParcel.deviceName;
@@ -77,7 +92,10 @@
/**
* Get Title.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getTitle() {
return mMetadataParcel.title;
@@ -85,7 +103,10 @@
/**
* Get Description.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getDescription() {
return mMetadataParcel.description;
@@ -93,7 +114,10 @@
/**
* Get DisplayUrl.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getDisplayUrl() {
return mMetadataParcel.displayUrl;
@@ -101,56 +125,80 @@
/**
* Get LastObservationTimestampMillis.
+ *
+ * @hide
*/
+ @SystemApi
public long getLastObservationTimestampMillis() {
return mMetadataParcel.lastObservationTimestampMillis;
}
/**
* Get FirstObservationTimestampMillis.
+ *
+ * @hide
*/
+ @SystemApi
public long getFirstObservationTimestampMillis() {
return mMetadataParcel.firstObservationTimestampMillis;
}
/**
* Get State.
+ *
+ * @hide
*/
+ @SystemApi
public int getState() {
return mMetadataParcel.state;
}
/**
* Get ActionUrlType.
+ *
+ * @hide
*/
+ @SystemApi
public int getActionUrlType() {
return mMetadataParcel.actionUrlType;
}
/**
* Get Rssi.
+ *
+ * @hide
*/
+ @SystemApi
public int getRssi() {
return mMetadataParcel.rssi;
}
/**
* Get PendingAppInstallTimestampMillis.
+ *
+ * @hide
*/
+ @SystemApi
public long getPendingAppInstallTimestampMillis() {
return mMetadataParcel.pendingAppInstallTimestampMillis;
}
/**
* Get TxPower.
+ *
+ * @hide
*/
+ @SystemApi
public int getTxPower() {
return mMetadataParcel.txPower;
}
/**
* Get AppName.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getAppName() {
return mMetadataParcel.appName;
@@ -158,7 +206,10 @@
/**
* Get GroupId.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getGroupId() {
return mMetadataParcel.groupId;
@@ -166,14 +217,20 @@
/**
* Get AttachmentType.
+ *
+ * @hide
*/
+ @SystemApi
public int getAttachmentType() {
return mMetadataParcel.attachmentType;
}
/**
* Get PackageName.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getPackageName() {
return mMetadataParcel.packageName;
@@ -181,7 +238,10 @@
/**
* Get FeatureGraphicUrl.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getFeatureGraphicUrl() {
return mMetadataParcel.featureGraphicUrl;
@@ -189,15 +249,23 @@
/**
* Get TriggerId.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getTriggerId() {
return mMetadataParcel.triggerId;
}
/**
- * Get IconPng.
+ * Get IconPng, which is submitted at device registration time to display on notification. It is
+ * a 32-bit PNG with dimensions of 512px by 512px.
+ *
+ * @return IconPng in 32-bit PNG with dimensions of 512px by 512px.
+ * @hide
*/
+ @SystemApi
@Nullable
public byte[] getIconPng() {
return mMetadataParcel.iconPng;
@@ -205,7 +273,10 @@
/**
* Get IconFifeUrl.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getIconFfeUrl() {
return mMetadataParcel.iconFifeUrl;
@@ -213,7 +284,10 @@
/**
* Get DebugMessage.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getDebugMessage() {
return mMetadataParcel.debugMessage;
@@ -221,7 +295,10 @@
/**
* Get DebugCategory.
+ *
+ * @hide
*/
+ @SystemApi
public int getDebugCategory() {
return mMetadataParcel.debugCategory;
}
@@ -235,14 +312,23 @@
/**
* Get LastUserExperience.
+ *
+ * @hide
*/
+ @SystemApi
public int getLastUserExperience() {
return mMetadataParcel.lastUserExperience;
}
/**
- * Get BleRecordBytes.
+ * Get BleRecordBytes. Raw bytes of {@link android.bluetooth.le.ScanRecord}.
+ * It is the most recent BLE advertisement related to this item.
+ *
+ * @return the most recent BLE advertisement in raw bytes of
+ * {@link android.bluetooth.le.ScanRecord}.
+ * @hide
*/
+ @SystemApi
@Nullable
public byte[] getBleRecordBytes() {
return mMetadataParcel.bleRecordBytes;
@@ -250,15 +336,23 @@
/**
* Get EntityId.
+ *
+ * @hide
*/
+ @SystemApi
@Nullable
public String getEntityId() {
return mMetadataParcel.entityId;
}
/**
- * Get authenticationPublicKeySecp256r1.
+ * Get authenticationPublicKeySecp256r1, which is same as AntiSpoof public key, see
+ * <a href="https://developers.google.com/nearby/fast-pair/spec#data_format">Data Format</a>.
+ *
+ * @return 64-byte authenticationPublicKeySecp256r1.
+ * @hide
*/
+ @SystemApi
@Nullable
public byte[] getAuthenticationPublicKeySecp256r1() {
return mMetadataParcel.authenticationPublicKeySecp256r1;
@@ -266,14 +360,20 @@
/**
* Builder used to create FastPairDiscoveryItem.
+ *
+ * @hide
*/
+ @SystemApi
public static final class Builder {
private final FastPairDiscoveryItemParcel mBuilderParcel;
/**
* Default constructor of Builder.
+ *
+ * @hide
*/
+ @SystemApi
public Builder() {
mBuilderParcel = new FastPairDiscoveryItemParcel();
}
@@ -283,7 +383,10 @@
*
* @param id Unique id.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ *
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setId(@Nullable String id) {
mBuilderParcel.id = id;
@@ -295,7 +398,9 @@
*
* @param type Nearby type.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setType(int type) {
mBuilderParcel.type = type;
@@ -307,7 +412,9 @@
*
* @param macAddress Fast Pair device rotating mac address.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setMacAddress(@Nullable String macAddress) {
mBuilderParcel.macAddress = macAddress;
@@ -319,7 +426,9 @@
*
* @param actionUrl Action Url of Fast Pair device.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setActionUrl(@Nullable String actionUrl) {
mBuilderParcel.actionUrl = actionUrl;
@@ -330,7 +439,9 @@
* Set DeviceName.
* @param deviceName Fast Pair device name.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDeviceName(@Nullable String deviceName) {
mBuilderParcel.deviceName = deviceName;
@@ -342,7 +453,9 @@
*
* @param title Title of Fast Pair device.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTitle(@Nullable String title) {
mBuilderParcel.title = title;
@@ -354,7 +467,9 @@
*
* @param description Description of Fast Pair device.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDescription(@Nullable String description) {
mBuilderParcel.description = description;
@@ -366,7 +481,9 @@
*
* @param displayUrl Display Url of Fast Pair device.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDisplayUrl(@Nullable String displayUrl) {
mBuilderParcel.displayUrl = displayUrl;
@@ -379,7 +496,9 @@
* @param lastObservationTimestampMillis Last observed timestamp of Fast Pair device, keyed
* by a rotating id.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setLastObservationTimestampMillis(
long lastObservationTimestampMillis) {
@@ -393,7 +512,9 @@
* @param firstObservationTimestampMillis First observed timestamp of Fast Pair device,
* keyed by a rotating id.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setFirstObservationTimestampMillis(
long firstObservationTimestampMillis) {
@@ -406,7 +527,9 @@
*
* @param state Item's current state. e.g. if the item is blocked.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setState(int state) {
mBuilderParcel.state = state;
@@ -418,7 +541,9 @@
*
* @param actionUrlType The resolved url type for the action_url.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setActionUrlType(int actionUrlType) {
mBuilderParcel.actionUrlType = actionUrlType;
@@ -430,7 +555,9 @@
*
* @param rssi Beacon's RSSI value.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setRssi(int rssi) {
mBuilderParcel.rssi = rssi;
@@ -443,7 +570,9 @@
* @param pendingAppInstallTimestampMillis The timestamp when the user is redirected to App
* Store after clicking on the item.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setPendingAppInstallTimestampMillis(long pendingAppInstallTimestampMillis) {
mBuilderParcel.pendingAppInstallTimestampMillis = pendingAppInstallTimestampMillis;
@@ -455,7 +584,9 @@
*
* @param txPower Beacon's tx power.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTxPower(int txPower) {
mBuilderParcel.txPower = txPower;
@@ -467,7 +598,9 @@
*
* @param appName Human readable name of the app designated to open the uri.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setAppName(@Nullable String appName) {
mBuilderParcel.appName = appName;
@@ -480,7 +613,9 @@
* @param groupId ID used for associating several DiscoveryItems. These items may be
* visually displayed together.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setGroupId(@Nullable String groupId) {
mBuilderParcel.groupId = groupId;
@@ -492,7 +627,9 @@
*
* @param attachmentType Whether the attachment is created in debug namespace.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setAttachmentType(int attachmentType) {
mBuilderParcel.attachmentType = attachmentType;
@@ -504,7 +641,9 @@
*
* @param packageName Package name of the App that owns this item.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setPackageName(@Nullable String packageName) {
mBuilderParcel.packageName = packageName;
@@ -517,7 +656,9 @@
* @param featureGraphicUrl The "feature" graphic image url used for large sized list view
* entries.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setFeatureGraphicUrl(@Nullable String featureGraphicUrl) {
mBuilderParcel.featureGraphicUrl = featureGraphicUrl;
@@ -529,7 +670,9 @@
*
* @param triggerId TriggerId identifies the trigger/beacon that is attached with a message.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setTriggerId(@Nullable String triggerId) {
mBuilderParcel.triggerId = triggerId;
@@ -541,7 +684,9 @@
*
* @param iconPng Bytes of item icon in PNG format displayed in Discovery item list.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setIconPng(@Nullable byte[] iconPng) {
mBuilderParcel.iconPng = iconPng;
@@ -553,7 +698,9 @@
*
* @param iconFifeUrl A FIFE URL of the item icon displayed in Discovery item list.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setIconFfeUrl(@Nullable String iconFifeUrl) {
mBuilderParcel.iconFifeUrl = iconFifeUrl;
@@ -565,7 +712,9 @@
*
* @param debugMessage Message written to bugreport for 3P developers.(No sensitive info)
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDebugMessage(@Nullable String debugMessage) {
mBuilderParcel.debugMessage = debugMessage;
@@ -577,7 +726,9 @@
*
* @param debugCategory Weather the item is filtered out on server.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setDebugCategory(int debugCategory) {
mBuilderParcel.debugCategory = debugCategory;
@@ -590,7 +741,9 @@
* @param lostMillis Client timestamp when the trigger (e.g. beacon) was last lost
* (e.g. when Messages told us the beacon's no longer nearby).
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setLostMillis(long lostMillis) {
mBuilderParcel.lostMillis = lostMillis;
@@ -604,7 +757,9 @@
* they dismissed the notification, that's bad; but if they tapped
* it, that's good).
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setLastUserExperience(int lastUserExperience) {
mBuilderParcel.lastUserExperience = lastUserExperience;
@@ -614,9 +769,12 @@
/**
* Set BleRecordBytes.
*
- * @param bleRecordBytes The most recent BLE advertisement related to this item.
+ * @param bleRecordBytes The most recent BLE advertisement related to this item. Raw bytes
+ * of {@link android.bluetooth.le.ScanRecord}.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setBleRecordBytes(@Nullable byte[] bleRecordBytes) {
mBuilderParcel.bleRecordBytes = bleRecordBytes;
@@ -628,7 +786,9 @@
*
* @param entityId An ID generated on the server to uniquely identify content.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setEntityId(@Nullable String entityId) {
mBuilderParcel.entityId = entityId;
@@ -636,11 +796,14 @@
}
/**
- * Set authenticationPublicKeySecp256r1.
+ * Set authenticationPublicKeySecp256r1, which is same as AntiSpoof public key, see
+ * <a href="https://developers.google.com/nearby/fast-pair/spec#data_format">Data Format</a>
*
- * @param authenticationPublicKeySecp256r1 Fast Pair device public key.
+ * @param authenticationPublicKeySecp256r1 64-byte Fast Pair device public key.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
+ @SystemApi
@NonNull
public Builder setAuthenticationPublicKeySecp256r1(
@Nullable byte[] authenticationPublicKeySecp256r1) {
@@ -650,7 +813,10 @@
/**
* Build {@link FastPairDiscoveryItem} with the currently set configuration.
+ *
+ * @hide
*/
+ @SystemApi
@NonNull
public FastPairDiscoveryItem build() {
return new FastPairDiscoveryItem(mBuilderParcel);
diff --git a/nearby/framework/java/android/nearby/FastPairEligibleAccount.java b/nearby/framework/java/android/nearby/FastPairEligibleAccount.java
index 1cc4ce8..e6c3047 100644
--- a/nearby/framework/java/android/nearby/FastPairEligibleAccount.java
+++ b/nearby/framework/java/android/nearby/FastPairEligibleAccount.java
@@ -19,7 +19,6 @@
import android.accounts.Account;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.nearby.aidl.FastPairEligibleAccountParcel;
@@ -60,14 +59,20 @@
/**
* Builder used to create FastPairEligibleAccount.
+ *
+ * @hide
*/
+ @SystemApi
public static final class Builder {
private final FastPairEligibleAccountParcel mBuilderParcel;
/**
* Default constructor of Builder.
+ *
+ * @hide
*/
+ @SystemApi
public Builder() {
mBuilderParcel = new FastPairEligibleAccountParcel();
mBuilderParcel.account = null;
@@ -79,8 +84,9 @@
*
* @param account Fast Pair eligible account.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
- @SuppressLint("MissingGetterMatchingBuilder")
+ @SystemApi
@NonNull
public Builder setAccount(@Nullable Account account) {
mBuilderParcel.account = account;
@@ -92,8 +98,9 @@
*
* @param optIn Whether the Fast Pair eligible account opts into Fast Pair.
* @return The builder, to facilitate chaining {@code builder.setXXX(..).setXXX(..)}.
+ * @hide
*/
- @SuppressLint("MissingGetterMatchingBuilder")
+ @SystemApi
@NonNull
public Builder setOptIn(boolean optIn) {
mBuilderParcel.optIn = optIn;
@@ -102,7 +109,10 @@
/**
* Build {@link FastPairEligibleAccount} with the currently set configuration.
+ *
+ * @hide
*/
+ @SystemApi
@NonNull
public FastPairEligibleAccount build() {
return new FastPairEligibleAccount(mBuilderParcel);