私は現在、携帯電話用に設計されたWebサイトを表示するWebViewコンポーネントを備えたAndroidアプリケーションを開発しています。したがって、CSSと画像のサイズを変更するには、x-wap-profileヘッダーをサイトに送信する必要があります。
誰かがUAProfデバイス設定を見つけるのを手伝ってもらえますか?
私はたくさんの検索を行いましたが、成功しませんでした。
どんな助けでも大歓迎です。
前もって感謝します。
誰かがUAProfデバイス設定を見つけるのを手伝ってもらえますか?
「UAProfデバイス設定」はありません。
独自のヘッダーセットを提供するバージョンを使用してloadUrl()
、目的のヘッダーを含めることができます。これはAPIレベル8(別名、Android 2.2)で追加されたことに注意してください-AFAIK、以前のバージョンのAndroidには、カスタムヘッダーを提供するオプションがありませんでした。
WebSettings
問題のWebサイトが目的のヘッダーの代わりにそれを使用する場合は、を介してユーザーエージェント文字列を設定することもできます。
UAProfは、次のように機能することを目的としています。デバイスがサーバーにHTTPリクエストを送信すると、追加のacceptヘッダーが送信されます。これらのヘッダーの1つは、そのデバイスの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");
Open Mobile Allianceバリデーターサイトで、より多くのUAProfプロファイルを見つけることができます。
Androidのソースコードを確認すると、Androidアプリケーション内からデバイスに関連付けられたUAProfプロファイルにアクセスする方法がないようです。ただし、Androidには別のAPI android.contentがあり、デバイスに関する情報をアプリケーションに提供します。これが例です。残念ながら、画面のジオメトリを取得したら、これをプロファイルに変換する必要があります。これには少し手間がかかります。
もう1つの解決策は、Androidからデバイス名を取得できる場合、デバイス名をプロファイルにマップするプロファイルのデータベースに対して相互参照することができます。そのようなデータベースはまだ存在していないと思いますが、構築できるかもしれません。出発点の1つは、OMAバリデーターサイトデータベース上のプロファイルのリストです。残念ながら、私はUAProfに何年も取り組んでいないため、これは時代遅れですが、リストの生成に使用したコードは、私が作成したJavaUAProfライブラリであるDELIで利用できます。最近のプロファイルを見つけるためにGoogleにクエリを実行しますが、GoogleはWebページのデザインを更新する傾向があるため、使用するスクレーパーが壊れている可能性があります。
これを行う前に、WebサイトがUAProf情報を使用するかどうかを確認する必要があります(サイトを作成している場合は問題ありません)が、サードパーティのサイトの場合、品質が高いため、多くの人がUAProfを使用していないと思われます。 UAProfプロファイルは非常に多様であり、デバイス情報を使用する場合は、ユーザーエージェント文字列を検出し、WURFLや同様の有料ソリューションなどの厳選されたプロファイルコレクションで検索することができます。