附近连接之间的永久设备 ID?

Permanent device ID between Nearby Connections?

我目前正在开发一个 P2P 聊天应用程序,用户可以在其中发现附近的设备并连接到它们。当其他设备接受连接请求时,它们将被添加到用户的联系人列表中。我想要做的是在应用程序启动时重新建立这些连接。例如,在我连接到 3 台设备的应用程序首次启动时,它们被添加到我的联系人列表中,然后我关闭了该应用程序。我使用 Room 在本地保存联系人列表。当我重新启动应用程序时,我想自动将我的设备重新连接到我的联系人(如果他们仍在附近)并显示一个绿点以表明他们可以聊天。

现在的问题是,我注意到连接 API 提供的 endpointId 对于连接之间的同一设备不断变化。我一直在为此寻找一个好的解决方案,但不幸的是我什么也想不出。我考虑过通过名称识别附近的设备,但如果有设备使用相同的名称或者我的其中一个联系人同时更改了名称,这将不起作用。因此,我需要一个不会在每个设备的连接之间改变的唯一标识符,这样我就可以将其保存在 Room 中并识别附近的设备,以确定它们是否属于我的联系人列表。

任何人都可以给我一个我可以在这种情况下应用的程序的建议吗?

配对时交换设备的AndroidId。您可以将其用作配对设备的名称或任何其他规格。

String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);