Как использовать Android_ID для связи с другим устройством? - PullRequest
0 голосов
/ 07 мая 2018

Мой роутер показывает

14:AA:BB:CC:DD:46  android-################  192.168.3.112
AC:AA:BB:CC:FF:46  MY-LAPTOP  192.168.3.112
AC:AA:BB:CC:FF:AC  NAS  192.168.3.112

Теперь, если я использую ftp://NAS/, это работает, но если я использую ftp://android-################:7721/, он не работает, снова ftp:/192.168.3.112:7721/ работает, я не понимаю, зачем тогда используется Android_ID.

Я подумал, поскольку Android IP постоянно меняется на маршрутизаторе, мы можем найти Android с помощью Android_ID, но это не так.

Кто-нибудь может объяснить, почему это происходит?

1 Ответ

0 голосов
/ 07 мая 2018

Ваше устройство Android использует DHCP для получения IP-адреса от маршрутизатора в вашей сети. Хотя маршрутизатор будет пытаться использовать один и тот же IP-адрес в сеансах, нет никакой гарантии, что вам всегда будет передаваться один и тот же IP-адрес. Как правило, вы не хотите делать какие-либо предположения о том, что он не меняется.

Предполагая, что у вас есть клиентское программное обеспечение, которое пытается установить связь со службой, работающей на устройстве Android, вам необходимо реализовать какой-то механизм обнаружения сети. Android имеет механизм в SDK, который использует mDNS под названием «NSD». См. https://developer.android.com/training/connect-devices-wirelessly/nsd. Вы также можете использовать UDP-трансляцию.

"android - ####" - это локальное имя хоста. Если вы не зарегистрировали свое устройство Android на DNS-сервере, обслуживающем вашу локальную сеть, вам необходимо использовать IP-адреса (и в этом случае вам необходимо настроить маршрутизатор так, чтобы он также давал устройству Android тот же IP-адрес).

...