Приложение поддержки - доступ к системной информации из браузера (настольного и мобильного) - PullRequest
2 голосов
/ 25 марта 2011

Моя команда отвечает за бэкэнд-архитектуру, аутентификацию и т. Д., А также за поддержку инженерного уровня для беспроводных и проводных сетей в сравнительно большом университете (более 50 000 пользователей). Две из наших самых больших проблем - это подтверждение проблем в сети (то есть подтверждение отчетов о «длительном времени загрузки» или «медленном интернете») и сбор точной информации о клиентском устройстве (MAC-адрес, информация о драйвере, конфигурация и т. Д.). Мы официально поддерживаем Windows, Mac, Ubuntu Linux, iOS и Android. Мобильные устройства очень важны для нас, так как они становятся очень распространенными.

У нас уже есть доступ к NDT-серверу Web100 (аналогичному серверу http://ndt.anl.gov:7123/)), который использует Java-апплет для запуска двунаправленных тестов пропускной способности и сообщает о загрузке и выгрузке, пропускной способности, задержке, дрожании, клиент находится за NAT и т. д. Предположительно, есть также клиенты iOS и Android для серверов NDT, но для этого а) потребуется постоянно устанавливать приложение на свое устройство (и, для iOS, загружать его в App Store), и б) Я сомневаюсь, что приложение для iOS имеет открытый исходный код, поэтому нам нужно было бы реализовать его с нуля, чтобы добавить сбор информации и представление результатов.

Мне нужно относительно легко собрать информацию о клиентской операционной системе, которую могут понять нетехнические конечные пользователи? По сути, я бы хотел, чтобы сотрудники нашей службы поддержки могли сказать пользователям (ну, тем, кто работает с сетевым подключением) перейти на веб-страницу, ввести номер билета, нажать кнопку и что-то соберет их MAC-адрес, тип и версию ОС, версии драйвера беспроводной карты и т. д., а затем отправит их обратно на сервер.

Я рассматривал апплет Java, но, учитывая «песочницу» в современных браузерах, я не могу получить MAC-адреса (не говоря уже о чем-нибудь более полезном, например, доступ к оболочке), независимо от того, подписано ли приложение или сколько предупреждений пользователь дано. Я рассматриваю Java Web Start, чтобы получить то, что нам нужно от настольных ОС, или просто говорю пользователям Linux и Mac скачать скрипт Bash и запустить его.

Есть идеи по поводу мобильных ОС? Для них, по сути, мне нужно получить беспроводной MAC-адрес, модель устройства, версию / сборку ОС и т. Д.

Кто-нибудь знает какие-либо проекты, которые уже делают что-то подобное (и являются бесплатными и бесплатными)?

1 Ответ

1 голос
/ 25 марта 2011

Для Android вам может понадобиться приложение специально для предоставления информации ... Я не уверен, что вы получите такой уровень детализации без него. Для запуска приложения также потребуются разрешения. Я бы хотел оказаться неправым, но я подозреваю, что так оно и будет. Вы могли бы связать приложение, которое пользователь устанавливает со страницы поддержки, и приложение могло бы автоматически отправить информацию обратно, если это облегчит пользователям? В любом случае, может помочь следующее:

wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

с последующими вызовами методов, такими как wifiManager.getDhcpInfo() и wifiManager.getWifiState() и wifiManager.getConnectionInfo(), должны предоставить необходимую информацию.

Вам также понадобится <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> в манифесте приложения.

И этот фрагмент из @willytate в другом подобном потоке содержит информацию об ОС: android.os.Build предоставляет много информации. Попробуйте:

String s = "Debug-infos:"; s + = "\ n Версия ОС:" + System.getProperty ("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")"; s + = "\ n Уровень API ОС:" + android.os.Build.VERSION.SDK; s + = "\ n Устройство:" + android.os.Build.DEVICE; s + = "\ n Модель (и Продукт):" + android.os.Build.MODEL + "(" + android.os.Build.PRODUCT + ")";

Надеюсь, что поможет

Steve

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...