[Приложение] мой MjDM (Android)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: [Приложение] мой MjDM (Android)

Сообщение SmoKE_xDDD »

Спасибо, переключение сервера по вайфай очень хочется =)
Аватара пользователя
hc2hunter
Сообщения: 511
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter »

Да помню я...
Вы хотите, чтобы в зависимости от точки доступа сервер становился именно приоритетным (первым в списке), или чтобы просто программа переключалась на него (выводила на передний план)?
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: [Приложение] мой MjDM (Android)

Сообщение SmoKE_xDDD »

hc2hunter писал(а): Пн янв 20, 2020 3:14 pm Да помню я...
Вы хотите, чтобы в зависимости от точки доступа сервер становился приоритетным (первым в списке), или чтобы просто программа переключалась на него и загружала страницу?
Да я верю, что помните =)
Да, смотрите, как я себе это вижу:
1) В настройках указываю имена WiFi сетей (Можно просто перечислением, через запятую. Именно несколько, т.к. у меня лично в доме 3 точки доступа) и сопоставляю их с уже созданными серверами
2) Прога при обнаружении сети из списка (Проверка перез запуском приложения) загружает автоматом нужный сервер.

Зачем это все?
1) Тем, у кого 2 сервера, например дача и дом, чтобы не тыкать вручную
2) Тем, у кого настроен внешний доступ, как у меня. Т.е. если я дома, я использую локальный IP для доступа, а если на работе - DynDNS или keenetic.pro и часто бывает, что сначала я вижу ошибку страница не найдена, а уже потом переключаюсь. К тому же, объяснить все это супруге немного сложно =), а тут за нее все будет делать приложение...
Аватара пользователя
hc2hunter
Сообщения: 511
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter »

Мысль понятна, будем заниматься.
Правда, сразу замечу, что начиная с Android 8 будут сложности с определением имени точки доступа (SSID) если выключена геолокация
(спасибо гуглу за то что так "заботится" о нас).
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: [Приложение] мой MjDM (Android)

Сообщение SmoKE_xDDD »

hc2hunter писал(а): Пн янв 20, 2020 3:29 pm Мысль понятна, будем заниматься.
Правда, сразу замечу, что начиная с Android 8 будут сложности с определением имени точки доступа (SSID) если выключена геолокация
(спасибо гуглу за то что так "заботится" о нас).
Самое простое решение, просто запинговать 192.168.1.1 или любой другой локальный IP (Указанный в настройках) :idea:
Аватара пользователя
hc2hunter
Сообщения: 511
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter »

И как это поможет в определении SSID ? :)
Или вы думаете это самый простой способ задетектить факт WiFi подключения? А если на телефоне поднят VPN или его аналог?
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: [Приложение] мой MjDM (Android)

Сообщение SmoKE_xDDD »

hc2hunter писал(а): Пн янв 20, 2020 3:35 pm И как это поможет в определении SSID ? :)
Или вы думаете это самый простой способ задетектить факт WiFi подключения?
Да не подумал про ВПН =(

Если(Пинг(192.168.1.1) == Да) {
Вы дома
}
Это скорее как костыль для реализации:
2) Тем, у кого настроен внешний доступ, как у меня. Т.е. если я дома, я использую локальный IP для доступа, а если на работе - DynDNS или keenetic.pro и часто бывает, что сначала я вижу ошибку страница не найдена, а уже потом переключаюсь. К тому же, объяснить все это супруге немного сложно =), а тут за нее все будет делать приложение...
Аватара пользователя
hc2hunter
Сообщения: 511
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter »

Да нет, костыли в виде пингов тут ни к чему...
И, собственно, почему вы решили, что 192.168.1.* - это вы именно дома? На работе, в гостях или в торговом центре не может быть локалки 192.168.1.* ? и уж тем более не может быть шлюза .1.1?:)

SSID текущей точки доступа получается совсем иным образом - из самой операционной системы.

Вообще, задача интересная и не самая тривиальная, т.к. вся эта "вафельная" организация во всех операционках весьма костыльная, корявая, и т.п... (будь то Windows или Linux - тараканов там хватает).
Но будем реализовывать. Завтра начну эксперименты.
Аватара пользователя
hc2hunter
Сообщения: 511
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter »

SmoKE_xDDD, поковырялся на скорую руку...
Кое-что уже получается. Даже уже определяю точку к которой подключен :)
Завтра буду писать обвязки интерфейса и запрос прав доступа (в Android 8.0 и выше требуются права на функцию ACCESS_COARSE_LOCATION, иначе имена сетей не возвращаются из соображений безопасности).

Сначала думал выводить списком имена сетей, чтобы можно было выбрать нужные для конкретного сервера, но, похоже, с этим связан ряд сложностей. В частности, если часть сетей невидна в данной зоне приема, пользователю придется ходить по всем точкам и собирать их в список... Также сюда накладывается необходимость сортировать скрытые SSIDы и точки с одинаковыми названиями (инфраструктуры типа WDS).
Возможно, действительно, на первом этапе сделать простую возможность перечислять имена точек именно вручную. А там посмотрим...
Аватара пользователя
hc2hunter
Сообщения: 511
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter »

В общем-то, кое-что уже реализовал...
Это будет дополнительный раздел настроек у сервера:
картинкаSPOILER_SHOW
device-2020-01-21-170614.png
device-2020-01-21-170614.png (80.22 КБ) 3484 просмотра

Вопросы и предложения:
  1. Как должна себя вести программа при попадании в зону обозначенной WiFi точки? Просто тупо спрыгивать на этот сервер?
  2. Как следствие второй вопрос - как должна себя вести программа, если пользователь возьмет и поменяет потом сервер на другой? Ну вот вдруг ему что-то понадобилось посмотреть и он ушел с сервера, на который его принудительно скинули. Нужно остаться на этом сервере или опять принудительно спрыгнуть назад при следующем сканировании эфира (Android это делает примерно раз в пару минут, как повезет)?
  3. Можно попробовать расширить функционал, добавив сюда поле с альтернативным адресом сервера. Скажем, если вы попали в зону точки, которая локальна с самим сервером - пусть и ходит на него по указанному (локальному) адресу?
Ответить