Android:如何在Android SDK中获取UAProf值?

Android:如何在Android SDK中获取UAProf值?,android,webview,uaprof,Android,Webview,Uaprof,我目前正在开发一个带有WebView组件的Android应用程序,它显示一个专为手机设计的网站,因此必须将x-wap-profile标题发送到该网站,以便调整CSS和图像的大小 有人能帮我找到UAProf设备设置吗 我进行了很多搜索,但没有成功 任何帮助都将不胜感激 提前谢谢 有人能帮我找到UAProf设备设置吗 没有“UAProf设备设置” 欢迎您使用loadUrl()版本,在该版本中,您可以提供自己的一组标题,以包含所需的标题。请注意,这是在API级别8(又称Android 2.2)中添加的

我目前正在开发一个带有WebView组件的Android应用程序,它显示一个专为手机设计的网站,因此必须将x-wap-profile标题发送到该网站,以便调整CSS和图像的大小

有人能帮我找到UAProf设备设置吗

我进行了很多搜索,但没有成功

任何帮助都将不胜感激

提前谢谢

有人能帮我找到UAProf设备设置吗

没有“UAProf设备设置”

欢迎您使用
loadUrl()
版本,在该版本中,您可以提供自己的一组标题,以包含所需的标题。请注意,这是在API级别8(又称Android 2.2)中添加的——AFAIK,Android的早期版本没有提供自定义标题的选项


如果相关网站将使用用户代理字符串而不是所需的标头,则也欢迎您通过
WebSettings
设置用户代理字符串。

UAProf的工作原理如下:当设备向服务器发送HTTP请求时,它会发送一些附加的accept标头。其中一个标头提供指向该设备的UAProf配置文件的链接,该设备位于服务器上,通常位于设备制造商处,也可能位于网络运营商处。UAProf还可以选择性地将覆盖作为accept头的一部分发送,尽管我从未见过这种情况在野外发生,但无可否认,我已经很久没有使用过UAProf了

因此,在您的情况下,您需要做的是发送指向真实UAProf配置文件的x-wap-profile标题,或者如果不存在此类配置文件,您需要编写一个。我没有使用WebView组件—我使用服务器端java—但如果您使用的是HttpURLConnection,则可以这样设置x-wap-profile:

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

回顾历史,似乎无法从Android应用程序中访问与设备相关联的UAProf配置文件。然而,Android有一个单独的API,为应用程序提供有关设备的信息。不幸的是,一旦获得屏幕几何图形,就需要将其转换为配置文件,这需要一些工作

另一种解决方案是,如果可以的话,可以将其与配置文件数据库进行交叉引用,该数据库将设备名称映射到配置文件上。我认为这样一个数据库还不存在,但可能会构建一个。一个起点是OMA验证程序站点数据库上的。不幸的是,这已经过时了,因为我已经有好几年没有在UAProf上工作了,但是我用来生成列表的代码可以在我编写的Java UAProf库中找到。它向谷歌查询最新的个人资料,但谷歌确实倾向于更新他们的网页设计,因此它使用的刮刀可能会坏掉


在您这样做之前,您想检查网站是否会使用UAProf信息-也许您正在编写网站,在这种情况下,它会很好-但对于第三方网站,我怀疑许多人不使用UAProf,因为UAProf配置文件的质量非常多变,如果他们使用设备信息,他们可能只是检测到用户代理字符串,然后在策划的配置文件集合中查找它,比如或类似的付费解决方案

我很感激你的回答,但那不是我所需要的。但我还是同意没有“UAProf设备设置”。干杯,马克。我非常清楚UAProf机制是如何工作的。我在问是否有办法询问应用程序运行的设备的UAProf URL。嗨,KaHa6uc,谢谢你的澄清,我已经更新了我的答案,希望它有用。有一些可能的解决办法。。但不幸的是,了解它们尤其容易。在实践中,我不认为UAProf被广泛使用。例如,据我所知,苹果公司发布的唯一UAProf数据是支持彩信——请参阅——没有它,IPhone似乎可以正常工作。