0

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

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

谁能给我一个我可以在这种情况下申请的程序的建议?

4

1 回答 1

0

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

String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
于 2020-07-22T12:03:56.970 回答