Android: как получить значение UAProf в Android SDK?

1

В настоящее время я разрабатываю приложение для Android с компонентом WebView, который отображает веб-сайт, предназначенный для мобильных телефонов, и поэтому заголовок x-wap-профиля должен быть отправлен на сайт, чтобы изменить размер CSS и изображений.

Может ли кто-нибудь помочь мне найти настройку устройства UAProf?

Я провел много поисков, не добившись успеха.

Любая помощь будет принята с благодарностью.

Спасибо заранее.

Теги:
webview

2 ответа

0
Лучший ответ

Может ли кто-нибудь помочь мне найти настройку устройства UAProf?

Нет настроек устройства UAProf.

Вы можете использовать версию loadUrl(), где вы предоставляете свой собственный набор заголовков для включения нужного заголовка. Обратите внимание, что это было добавлено в API 8-го уровня (a.k.a., Android 2.2) - AFAIK, в предыдущих версиях Android не было параметров для предоставления пользовательских заголовков.

Вы также можете установить строку своего пользователя через WebSettings, если этот веб-сайт будет использовать это вместо желаемого заголовка.

  • 0
    Я ценю ваш ответ, но это не совсем то, что мне нужно. Но я все же согласен с тем, что здесь нет «настройки устройства UAProf». Cheerz
0

UAProf должен работать следующим образом: когда устройство отправляет HTTP-запрос серверу, он отправляет некоторые аддитивные заголовки. Один из этих заголовков предоставляет ссылку на профиль UAProf для этого устройства, которое расположено на сервере, как правило, у производителя устройства или, возможно, у оператора сети. UAProf также может, необязательно, отправлять переопределения как часть заголовков accept, хотя я никогда не видел, чтобы это происходило в дикой природе, но, по общему признанию, я долгое время работал над UAProf.

Итак, в вашем случае вам нужно либо отправить заголовок x-wap-профиля, указывающий на реальный профиль UAProf, либо если такой профиль не существует, вам нужно написать его. Я не использовал компонент WebView - я использую серверную java-версию, но можно установить x-wap-profile следующим образом, если вы используете HttpURLConnection:

    HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
    urlconn.setRequestProperty("X-Wap-Profile", 
         "http://wap.samsungmobile.com/uaprof/GT-I8190.xml");

Вы можете найти больше профилей UAProf в Open Mobile Alliance сайт валидатора.

Обзор Исходный код Android кажется, что нет способа получить доступ к профилю UAProf, связанному с устройством, из приложения Android. Однако у Android есть отдельный API, android.content, который предоставляет приложениям информацию об устройстве - вот пример. К сожалению, как только вы получите геометрию экрана, вам нужно будет преобразовать это в профиль, который займет немного работы.

Другое решение - если вы можете получить имя устройства с Android, то вы можете перекрестно ссылаться на базу данных профилей, которая сопоставляет имена устройств в профилях. Я не думаю, что такая база данных уже существует, но ее можно было бы построить. Одной отправной точкой является список профилей в базе данных сайта валидатора OMA. К сожалению, это устарело, поскольку я не работал над UAProf в течение нескольких лет, но код, который я использовал для создания списка, доступен в DELI, которую я написал в библиотеке Java UAProf. Он запрашивает Google, чтобы найти последние профили, но Google, как правило, обновляет дизайн своей веб-страницы, поэтому скребок, который он использует, может быть нарушен.

Прежде чем вы это сделаете, вы хотите проверить, будет ли сайт использовать информацию UAProf - возможно, вы пишете сайт, и в этом случае это будет хорошо, но для сторонних сайтов я подозреваю, что многие не используют UAProf, потому что качество профилей UAProf очень изменчиво, если они вообще используют информацию об устройстве, они могут просто определить строку пользовательского агента, а затем просмотреть ее в кураторской коллекции профилей, например WURFL или аналогичное платное решение.

  • 1
    Привет, Марк. Я прекрасно знаю, как работает механизм UAProf. Я спрашивал, есть ли способ спросить устройство, на котором работает приложение, для его URL UAProf.
  • 0
    Привет KaHa6uc, спасибо за разъяснения, я обновил свой ответ, надеюсь, что это полезно. Есть несколько возможных решений ... но, к сожалению, известные из них особенно просты. На практике я не думаю, что UAProf широко используется. Например, насколько мне известно, единственные данные UAProf, публикуемые Apple, касаются поддержки MMS - см. Apple.com/mms/uaprof.rdf - и IPhone, кажется, работает без него без проблем .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню