Постоянный идентификатор устройства между ближайшими подключениями?

В настоящее время я работаю над приложением чата P2P, в котором пользователь обнаруживает близлежащие устройства и подключается к ним. Когда другие устройства принимают запрос на подключение, они добавляются в список контактов пользователя. Что я хочу сделать, так это восстановить эти соединения всякий раз, когда приложение запускается. Например, при первом запуске приложения я подключился к 3 устройствам, они были добавлены в мой список контактов, а затем я закрыл приложение. Я сохраняю список контактов локально, используя Room. Когда я перезапускаю приложение, я хочу автоматически переподключить свое устройство к своим контактам, если они все еще находятся рядом, и отобразить зеленую точку, чтобы показать, что они доступны для чата.

Теперь проблема в том, что я заметил, что endpointId, предоставляемый Connections API, продолжает меняться для одного и того же устройства между подключениями. Я искал хорошее решение для этого, но, к сожалению, я ничего не мог придумать. Я подумал об идентификации ближайших устройств по их имени, но это не сработает, если есть устройства, использующие то же имя, или если один из моих контактов тем временем сменил имя. Итак, мне нужен уникальный идентификатор, который не будет меняться между подключениями для каждого устройства, чтобы я мог сохранить его в комнате и идентифицировать устройства поблизости, чтобы решить, являются ли они частью моего списка контактов.

Может ли кто-нибудь дать мне предложение процедуры, которую я могу применить в этом случае?


person Catalin Mares    schedule 22.07.2020    source источник


Ответы (1)


Обмен AndroidId устройств при сопряжении. вы можете использовать его как имя или любую другую характеристику сопряженных устройств.

String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
person sajjad    schedule 22.07.2020