Medium-rare wrote:Интеррапт wrote:А вот для программиста - сложно сказать. Вроде как бы Android намного более открытый, я всегда могу скачать исходники той же 2.x или 4.x Андроида и посмотреть что и как работает (мало того, делаю я это все время). А с другой стороны, давече нужно было получить MAC адрес для WiFi адаптера, учитывая, что WiFi может быть выключен в данный момент времени. Для Андроида для некоторых телефонов это получилось сделать, для некоторых нет (на самом деле, начиная с 3.x проблема была решена, но уж очень много 2.x устройств).
Всё правильно, Гугль никак не специфицирует, как производители устанавливают в андроидной системе устройства. В одном /dev/xxx в другом /dev/yyy для некоего одного и того же порта, в Samsung и LG, скажем. И это лишь цветочки. Как дотянуться до внутренностей устройства на разных андроидах известно ограниченному числу людей. Каждый раз по разному, будь-то WiFi или что ещё. В конце концов, сами устройства разные. Не очень представляю, как начиная с 3.x эта проблема решена. Производитель добивается корректного функционирования подмножества классов Android SDK (пишет JNI модули, которые сношаются с разными хост-процессами чипсетов) и того, что доступно через NDK. Что там можно наловить в исходниках Андроида, если Гугль не специфицировал для внешнего интерфейса? Google специфицировал некий интерфейс для получения MAC-адреса для WiFi?
Типа искать в файловой системе /sys/class/net/[something]/address?
Ещё бы гарантия была, что оно там. Да ещё и root нужен (?)
В том то и дело, что если бы оно там было. Я по этому принципу и работал, искал /sys/class/net/
eth0/address. Все-таки Линукс. И работало. Пока не начал тестировать и не натолкнулся на кучу телефонов вот с таким списком в /net: ip6tnl0, sit0, usb0, rmnet2, rmnet1, rmnet0, ifb1, ifb0, dummy0, gannet0, lo
Т.е. eth0 даже и не пахло
И прошерстив файлы - ес-но MAC адреса не нашел. От метода пришлось отказаться. Мне еще нужно было уникальный идентификатор телефона найти. Использовал несколько разных методов (потому что некоторые методы работают, некоторые нет). Потом выяснилось, что на некоторых моделей Самсунга все эти методы - вообще не работают. Ни один.