BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> RQ: Android, търсене на WiFi мрежа, (бързият и хубав начин)
abramabra
Публикувано на: 27-11-2018, 20:43
Quote Post



Име: Никола
Група: Потребител
Ранг: Новопостъпил

Мнения: 31
Регистриран на: 02.07.15



Какъв е бързият и хубав начин за проверка дали сме в зоната на определена WiFi мрежа?
Добре ще е периодично (на всяка секунда, примерно icon_smile.gif) да зная нивото на сигнала на една мрежа.
Не чак като WiFi analizer - но за една определена мрежа и май точният канал не е съществен.
PMEmail Poster
Top
gat3way
Публикувано на: 27-11-2018, 23:12
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3337
Регистриран на: 22.06.12



А какво значи "в зоната на определена wifi мрежа" ?

Андроидското API около тези неща се върти около wpa_supplicant, което само по себе си е доста ограничаващо. Но да речем не беше така, също имаше и root достъп, вкараш интерфейса в режим монитор, драйверът подържа radiotap, сложиш интерфейса на правилния канал (или хопваш през каналите, но така можеш да загубиш фреймове), най-близкото до това което искаш е когато получиш beacon от AP-то, да го обявиш за "в обсег" и от radiotap хедъра да му изчетеш силата на сигнала. Обаче AP-то може да праща beacon-и веднъж на 5 секунди примерно, тогава няма как да знаеш през секунда какво наистина се случва.

Само че дори това че си получил beacon-а не означава че си "в обхвата". Access point-а може и да метне до теб beacon-а, но никой не е казал че ти можеш да хвърлиш до него нещо - както лесно се илюстрира на морето където слагат разни секторни антени да греят плажа и beacon-ите ги ловиш от Несебър във Влас, естествено не можеш да се вържеш дотам с телефона и турско да стане.

wpa_supplicant-а прави и друг номер, който е много по-близо до това което искаш, сканирането не е изцяло пасивно, има и активно, за мрежи за които някога си се връзвал, по дефолт праща един probe request докато сканира. Ако получи отговор, значи AP-то го има наблизо и това е доста по-истинско, защото щом двете устройства могат да си говорят, значи не се получава номера от Несебър и Влас. Обаче първо - през андроидското API нямаш контрол върху това за кои мрежи да се случва активното сканиране. Второ - ако искаш това да го правиш на всички канали, ще трябва да хопваш между тях и тогава е божа работа колко трябва да се задържиш на един канал за да ти дойде отговора. А и отговор може да има ама просто поради някаква причина да не си успял да го приемеш, примерно имало точно тогава шум и чексумата му излезнала грешна.

Абе както можеш да се досетиш, "дали съм в обсега на мрежата", "искам да знам на всяка секунда" и "точният канал не е съществен" са малко условни неща.

PMEmail Poster
Top
abramabra
Публикувано на: 28-11-2018, 00:22
Quote Post



Име: Никола
Група: Потребител
Ранг: Новопостъпил

Мнения: 31
Регистриран на: 02.07.15



Надявам се знаеш колко съм ти благодарен, на теб и на боговете на форумите, които създадоха обстоятелствата icon_smile.gif


Ще се постарая да опиша простичък модел (естествено, напълно си прав за лошо зададеното питане)
Потребителят отива в офиса, стартира приложението, ако то открие определе АР (не основния за местоположението - пак неопределеност icon_smile.gif ), се конектва към това АР, свързва се набързо с локално сървърче и обменя няколко пакета, след което ще е добре да се свърже с основната мрежа (друго АР), но не е задължително.
PMEmail Poster
Top
abramabra
Публикувано на: 28-11-2018, 00:27
Quote Post



Име: Никола
Група: Потребител
Ранг: Новопостъпил

Мнения: 31
Регистриран на: 02.07.15



Естествено е да възникнат маса въпроси : що не си свържите мрежите, що не ползвате интернет,
.. това, описанието по-горе е само модел, става дума за външна временна АР, която понякога (рядко) се появява, не е добре да е в интернет и/или в мрежата на офиса.

Това мнение е било редактирано от abramabra на 28-11-2018, 00:27
PMEmail Poster
Top
gat3way
Публикувано на: 28-11-2018, 00:28
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3337
Регистриран на: 22.06.12



Еми тогава може по дърварския начин - да сканираш мрежите и когато си го откриеш в резултатите, да се вържеш (за последното нямам идея програматично как се създава профил и се връзва ако досега не е направено ръчно, ама сигурно може, далеч не ми е сила андроида). Съответно може и да не успее да се върже, тогава да си хендълваш грешките. Сигурно е неефективно и сигурно и хаби и батерия доволно с това сканиране постоянно, ама какво да се прави, не живеем в идеален свят. Аз честно казано не бих се хабил с това, ами просто през някакъв период от време (сигурно има и нотификации, там андроидски за връзване към нова мрежа, може да се възползваш) щях да се пробвам да се вържа към това локално сървърче, знам ли, може през друга мрежа да стане или пък през същата, ама с преименувано ssid. За да съм сигурен че се е вързал сигурно щях да се погрижа и за протокола по който се връзвам към въпросното сървърче, та да знам дали съм се вързал точно с това което трябва.
PMEmail Poster
Top
purjola
Публикувано на: 28-11-2018, 00:43
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2167
Регистриран на: 18.10.11



Взимаш си един таблет, който може едновременно да точи от външна батерия и да има закачен usb хъб на него. Закачаш на хъбовете/хъба 14 usb wi-fi мрежови карти, настройваш всяка само да приема в един канал и така покриваш основните за 2.4GHz (по стандарт са май 23 канала)
PMEmail Poster
Top
abramabra
Публикувано на: 28-11-2018, 12:22
Quote Post



Име: Никола
Група: Потребител
Ранг: Новопостъпил

Мнения: 31
Регистриран на: 02.07.15



QUOTE (gat3way @ 28-11-2018, 00:28)
Еми тогава може по дърварския начин - да сканираш мрежите  .....

Нещо такова ще да е

Wi-Fi scanning overview

Ако някой има съвети, препоръки, бележки icon_smile.gif, да ги дава icon_smile.gif

Това мнение е било редактирано от abramabra на 28-11-2018, 12:22
PMEmail Poster
Top
gat3way
Публикувано на: 29-11-2018, 00:15
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3337
Регистриран на: 22.06.12



Хахаха аз като го зачетох това...

QUOTE
Android 9 and later:

Each foreground app can scan four times in a 2-minute period. This allows for a burst of scans in a short time.

All background apps combined can scan one time in a 30-minute period.


Гугъла знае какво е добре за теб хаха. 4 сканирания за 2 минути значи. Тцтц, навремето като си играх да си пиша некадърния андроидски wardriving шит, нямаше такива ограничения. Още една причина да си рутнеш телефона значи и да си говориш директно с wpa_supplicant-а през сокета дето го ползва и wpa_cli-то, без да минаваш през тъпите андроидски ограничения. Много ми е чудно всъщност дали и без административни привилегии не можеш да четеш и пишеш в него, ама силно ме съмнява, гугъла не са идиоти, няма да го оставят да се гаврят девелоперчетата ей така.
PMEmail Poster
Top
abramabra
Публикувано на: 29-11-2018, 18:14
Quote Post



Име: Никола
Група: Потребител
Ранг: Новопостъпил

Мнения: 31
Регистриран на: 02.07.15



Да, има гадни ограничения.
Опитвам се да спретна една техника. Отделих време на блутут, но се оказа, че девайса, който искам да обслужвам, не може да се Peer-ва едновременно с достатъчен брой клиенти. Опитах всеки път да peer-вам - стана, но при всяко ново peer-ване трябва да се въведе код. А това изисква намеса на юзера (андроидтът не ще програмно да прави кода).

Затова сега се опитвам да спретна техниката с WiFi icon_smile.gif.
Вместо модулче HT-05 (bluetooth) ще ползвам ESP8266 (WiFi) или нещо подобно (Esp32, ...)

(Начинаещ съм в андроид и с това занимание се опитвам да навлизам.)


А, да, icon_smile.gif, започнах поста заради тоя линк, а се отнесох,като прочетох последния пост, преди моя:
Линк по темата icon_smile.gif : https://stackoverflow.com/questions/9353005...on-is-available

Това BroadcatReceiver ми харесва все повече и повече icon_smile.gif

Това мнение е било редактирано от abramabra на 29-11-2018, 18:17
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 29-11-2018, 18:17
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1521
Регистриран на: 21.02.18



QUOTE
андроидтът не ще програмно да прави кода
аз имам една блутоот колонка и тя не ще код.


--------------------
Напред! Живота е сраженье! Напред! И прав всегда ходи!
Напред, макар към поражение! Ако ще паднеш, прав падни!
---
Raw, and untamed in spirit, We chew this world and Spit it out
---
Challenge my own world to chaos
---
“I overcame myself, the sufferer; I carried my own ashes to the mountains; I invented a brighter flame for myself.”
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0