UAProf предназначен для работы следующим образом: когда устройство отправляет HTTP-запрос на сервер, оно отправляет некоторые дополнительные заголовки принятия. Один из этих заголовков предоставляет ссылку на профиль UAProf для этого устройства, которое находится на сервере, обычно у производителя устройства или, возможно, у оператора сети. UAProf также может, при желании, отправлять переопределения как часть заголовков принятия, хотя я никогда не видел, чтобы это происходило в дикой природе, но по общему признанию, я давно работал с UAProf.
Итак, в вашем случае вам нужно либо отправить заголовок профиля x-wap, указывающий на реальный профиль UAProf, либо, если такого профиля не существует, вам нужно написать его. Я не использовал компонент WebView - я делаю Java на стороне сервера - но возможно установить x-wap-профиль так, если вы используете HttpURLConnection:
HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
urlconn.setRequestProperty("X-Wap-Profile",
"http://wap.samsungmobile.com/uaprof/GT-I8190.xml");
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Просмотр исходного кода Android кажется, что нет доступа к профилю UAProf, связанному с устройством, из приложения Android. Однако у Android есть отдельный API, android.content , который предоставляет приложениям информацию об устройстве - , вот пример . К сожалению, как только вы получите геометрию экрана, вам нужно будет преобразовать ее в профиль, что потребует немного работы.
Другое решение состоит в том, что если вы могли бы получить имя устройства из Android , то вы могли бы сопоставить его с базой данных профилей, которая сопоставляет имена устройств с профилями. Я не думаю, что такая база данных уже существует, но ее можно создать. Одной из отправных точек является список профилей в базе данных сайта валидатора OMA. К сожалению, это устарело, так как я несколько лет не работал с UAProf, но код, который я использовал для создания списка, доступен в DELI , библиотеке Java UAProf, которую я написал. Он запрашивает у Google информацию о последних профилях, но Google, как правило, обновляет дизайн своих веб-страниц, поэтому используемый им скребок может быть сломан.
Прежде чем сделать это, вы хотите проверить, будет ли веб-сайт использовать информацию UAProf - возможно, вы пишете сайт, и в этом случае это будет хорошо - но я подозреваю, что для сторонних сайтов многие не используют UAProf, потому что качество профилей UAProf очень разнится, если они вообще используют информацию об устройстве, они могут просто обнаружить строку пользовательского агента, а затем найти ее в кураторской коллекции профилей, например WURFL или аналогичном платном решении.