返回

Nearby Connections API:避免设备名称广告后变更

Android

Nearby Connect API:管理设备名称变更

在当今互联互通的世界中,我们经常需要在设备之间建立连接,以便进行数据共享或其他交互。Nearby Connections API 正是 Android 系统中为这一目的而提供的一种强大工具。然而,在使用该 API 时,你可能会遇到一个潜在的问题,即蓝牙设备的名称在开始广告后发生更改。

问题原因

Nearby Connections API 在启动广告时会创建一个临时的、基于设备硬件地址的设备名称。这可能导致你的设备名称发生更改,因为硬件地址通常与你设置的蓝牙名称不同。

解决方案

为了解决这个问题,Nearby Connections API 提供了一个称为 自定义名称字段 的功能。此字段允许你覆盖 API 自动生成的临时名称,并使用你自己的自定义名称。

使用自定义名称字段

使用自定义名称字段来设置设备名称的过程非常简单。只需按照以下步骤操作:

  1. 创建 AdvertisingOptions 对象: 使用 AdvertisingOptions.Builder() 创建一个 AdvertisingOptions 对象。
  2. 设置自定义名称: 使用 setBluetoothName() 方法设置自定义名称。
  3. 启动广告: 在启动广告时,将 AdvertisingOptions 对象作为参数传递给 startAdvertising() 方法。

通过使用这些步骤,你可以将设备名称设置为一个自定义值,即使在开始广告后也不会更改。

示例代码

以下示例代码展示了如何使用自定义名称字段:

// 创建 AdvertisingOptions 对象
val advertisingOptions = AdvertisingOptions.Builder()
    .setStrategy(Strategy.P2P_STAR)
    .setBluetoothName("My Custom Name")
    .build()

// 启动广告
mConnectionsClient.startAdvertising(
    "My Service ID",
    advertisingOptions,
    object : ConnectionLifecycleCallback() {
        // ...
    }
)

结论

通过使用 Nearby Connections API 的自定义名称字段,你可以确保在使用该 API 时蓝牙设备始终显示你设置的名称。这样可以避免设备名称在开始广告后发生意外更改,并确保设备在附近网络中更容易识别。

常见问题解答

  1. 为什么要使用自定义名称字段?
    答:使用自定义名称字段可以避免在使用 Nearby Connections API 时蓝牙设备名称意外更改。
  2. 如何设置自定义名称?
    答:通过在 AdvertisingOptions 对象中使用 setBluetoothName() 方法。
  3. 在哪些情况下应该使用自定义名称?
    答:当你希望设备在附近网络中拥有一个特定或可识别名称时。
  4. 是否可以使用多个自定义名称?
    答:不可以,每个设备只能使用一个自定义名称。
  5. 自定义名称的长度限制是多少?
    答:自定义名称的长度限制为 31 个字符。