端末情報取得
端末情報取得
概要
Durianを使用すると、リクエストを行った端末の機種情報をアプリケーション側から利用することができます。
フィルタ方式の場合、HttpServletRequestオブジェクトの属性からPropertiesオブジェクトとして取得できます。プロキシ方式では、HTTPリクエストヘッダから取得します。
端末情報項目一覧
キー(親要素) | キー(子要素) | 値 | 説明 |
---|---|---|---|
device | mobile, smartPhone, PC, unknown | デバイス区分 | |
carrier | DoCoMo, SoftBank, au, Disney, unknown | キャリア名 | |
networkService | i-mode, YahooKeitai, ezweb, unknown | サービス名 | |
networkService2 (※7) | i-mode, YahooKeitai, ezweb, iPhone, spmode, isnet, pcsiteviewer, unknown | サービス名2 | |
series | 900iなど | 製品シリーズ(DoCoMoのみ) | |
maker | Mitsubishi, Panasonic, FUJITSUなど | メーカー名 | |
productName | N905i, 910SH, W53Sなど | 製品名 | |
requestName | N905i, 910SH, SN3Bなど | リクエストヘッダーに記述された機種ID | |
color | 数値 | 表示可能な色数 | |
colorMode | mono/color | モノクロかカラーか | |
characterWidth | 数値 | 表示可能文字数(横・全角換算) | |
characterHeight | 数値 | 表示可能文字数(縦) | |
screenPixelWidth | 数値 | 待ち受け画像表示可能ピクセル数(横) | |
screenPixelHeight | 数値 | 待ち受け画像表示可能ピクセル数(縦) | |
pixelWidth | 数値 | 表示可能ピクセル数(横) | |
pixelHeight | 数値 | 表示可能ピクセル数(縦) | |
browserVersion(※5) | 1.0, 2.0, 6.2, 7.2 など | ブラウザバージョン | |
markupLanguage | name | CHTML, SHTML, IXHTML, SXHTMLなど | マークアップ言語名 |
markupLanguage | version | 1.0, 2.0, 3.0 など | マークアップ言語のバージョン |
markupLanguage | contentType | text/html; charset=Shift_JIS, application/xhtml+xml; charset=Shift_JISなど | マークアップ言語のコンテントタイプ |
characterEncoding | Shift_JISなど | 使用可能なエンコーディング方式 | |
escapeAttributeValue | true/false | 属性の値を & などにエスケープするかどうか | |
escapePathParameter | true/false | パスパラメータに含まれる記号をエスケープするかどうか | |
escapeFormControlName | true/false | formのname属性をURLエンコードしてHTML出力するかどうか | |
tableSupport | true/false | テーブルタグが使用可能かどうか | |
styleAttributeSupport | true/false | style属性が使用可能かどうか | |
fontSizeAttributeSupport | true/false | fontタグのsize属性が使用可能かどうか | |
cssSupport | true/false | CSSのサポート | |
mailtoParam | subject,body, cc,bcc | mailto機能に付加可能なパラメータ | |
mailtoEncoding | Shift_JIS, UTF-8 | mailtoで指定するパラメータのエンコーディング | |
postSupport | true/false | POSTメソッドのサポート | |
imageFormat | GIF,PNG,JPEGなど | 使用可能な画像フォーマット方式 | |
animationGif | true/false | アニメーションGIFに対応しているかどうか | |
progressiveJpeg (※1) | true/false | プログレッシブJPEGに対応しているかどうか | |
melodyFormat | Mfi1, Mfi2, Mfi3, Mfi4, SMAF, SMD, CMIDI, Qcelp, MP4, 3GPP2 | メロディフォーマット | |
polyphonicCount | 数値 | 最大同時発音数 | |
applicationFormat | JAM,KJX,JAD | Javaアプリケーションフォーマット | |
applicationVersion | DoJa1.0, Phase2, MIDP2.0など | Javaアプリケーションバージョン | |
iAppliSupport | true/false | iAppliに対応しているかどうか(DoCoMoのみ) | |
movieFormat | ASF, 3GPP2, MP4 | 動画フォーマット | |
flashSupport | true/false | flashに対応しているかどうか | |
flashVersion (※3) | Lite1.0, Lite1.1, Lite2.0 | Flashバージョン | |
maxFlashBytes (※3) | 20000, 48000, 100000, 150000 | Flash最大サイズ | |
ezAtMail | true/false | @mail対応しているかどうか(ezweb端末のみ) | |
deviceType | C2, C3, C4, P4, P5, P6, P7, W, 3GC | SoftBankの端末タイプ | |
glyphSetName | i-mode, i-mode-ex, YahooKeitai-C, YahooKeitai-P, ezweb-1, ezweb-2 | グリフセット(絵文字)の名前 | |
glyphSetName2 (※2) | i-mode, i-mode-ex, YahooKeitai-C, YahooKeitai-P, ezweb-1, ezweb-2, ezweb-3, ezweb-4 | グリフセット(絵文字)の名前(Durian4.1以降で使用) | |
cameraSupport | true/false | カメラをサポートしているかどうか | |
qvga | true/false | QVGAであるかどうか | |
sslSupport | true/false | SSLをサポートしているかどうか | |
japaneseFilenameSupport | true/false | 日本語ファイル名をサポートしているかどうか | |
maxImageBytes | 数値 | 画像変換での最大画像ファイルサイズ | |
fullscreenImageSupport | true/false | 壁紙サイズの画像をブラウザ表示可能かどうか | |
htmlMailSupport (※3) | true/false | HTMLメールサポート | |
htmlMailName (※3) | decomail, decorationmail, arrangemail | HTMLメール名称 | |
htmlMailTemplateSupport (※3) | true/false | HTMLメールテンプレートサポート | |
htmlMailTemplateVersion (※3) | 1.0, 2.0 | HTMLメールテンプレートバージョン | |
screenThemeSupport (※3) | true/false | スクリーンテーマサポート。きせかえツール(DoCoMo)、EZケータイアレンジ(au)、カスタムスクリーン(SoftBank)の対応状況を示します。 | |
gpsSupport (※4) | true/false | GPSをサポートしているかどうか | |
crawler (※6) | true/false | クローラーからのアクセスかどうか | |
crawlerGroup (※6) | Yahoo/Google/MSNなど | クローラーのグループ名 |
※1 2007/4/3追加
※2 2007/5/28追加
※3 2007/8/20追加
※4 2009/5/11追加
※5 2009/10/19追加
※6 2010/11/5追加
※7 2011/5/19追加
フィルタ方式での取得方法
上記表のキー値を用いてPropertiesオブジェクトから値を取り出します。Propertiesオブジェクトからは以下のキーを使用することで情報取得が可能です。
一つのキー値の要素の個数 | (キー名)@length |
---|---|
一つのキーのn番目の要素 | (キー名)[n] |
この[n]というインデックス指定はたとえimageFormat要素の個数が1個だったとしても1と指定する必要があります。このインデックスの基底値は1です。
例えば、端末情報の中の"imageFormat"プロパティに存在する要素の個数を取得するには以下のようなキー値を指定します。
imageFormat@length |
また、この要素の中の1番目の値を取得する場合は、以下のようなキー値を指定します。
imageFormat[1] |
マークアップ言語の名前を取り出すには
markupLanguage[1]/name[1] |
というキー値を指定してPropertiesオブジェクトから値を取り出します。簡単な流れとしては以下のようになります。
1.リクエストオブジェクトからPropertiesオブジェクトを取り出す。
Properties prop = (Properties)request.getAttribute("termInfo");
2.Propertiesオブジェクトからキー値を使用して値を取得する。
String value = prop.getProperty("markupLanguage[1]/name[1]");
プロキシ方式での取得方法
プロキシ方式の場合は端末情報はHTTPリクエストヘッダでプロキシ先に送信されます。
ただし送信されるヘッダはDurian管理ツールで選択されている項目だけとなります。
取得したいヘッダをDurian管理ツールで指定してください。
HTTPヘッダの名前は以下のようになります。
X-Durian-上記表のキー名(※) |
※キー名は先頭が大文字で途中の大文字の間に-(ハイフン)が挿入された形式になります
以下にその表を記します。
送信されるヘッダ名 | 対応する端末情報キー名 |
---|---|
X-Durian-Device | device |
X-Durian-Carrier | carrier |
X-Durian-Network-Service | networkService |
X-Durian-Network-Service2(※7) | networkService2 |
X-Durian-Series | series |
X-Durian-Maker | maker |
X-Durian-Product-Name | productName |
X-Durian-Request-Name | requestName |
X-Durian-Color | color |
X-Durian-Color-Mode | colorMode |
X-Durian-Character-Width | characterWidth |
X-Durian-Character-Height | characterHeight |
X-Durian-Screen-Pixel-Width | screenPixelWidth |
X-Durian-Screen-Pixel-Height | screenPixelHeight |
X-Durian-Pixel-Width | pixelWidth |
X-Durian-Pixel-Height | pixelHeight |
X-Durian-Markup-Language | markupLanguage |
X-Durian-Character-Encoding | characterEncoding |
X-Durian-Escape-Attribute-Value | escapeAttributeValue |
X-Durian-Escape-Path-Parameter | escapePathParameter |
X-Durian-Escape-Form-Control-Name | escapeFormControlName |
X-Durian-Table-Support | tableSupport |
X-Durian-Style-Attribute-Support | styleAttributeSupport |
X-Durian-Font-Size-Attribute-Support | fontSizeAttributeSupport |
X-Durian-Css-Support | cssSupport |
X-Durian-Mailto-Param | mailtoParam |
X-Durian-Mailto-Encoding | mailtoEncoding |
X-Durian-Post-Support | postSupport |
X-Durian-Image-Format | imageFormat |
X-Durian-Animation-Gif | animationGif |
X-Durian-Progressive-Jpeg(※1) | progressiveJpeg |
X-Durian-Melody-Format | melodyFormat |
X-Durian-Polyphonic-Count | polyphonicCount |
X-Durian-Application-Format | applicationFormat |
X-Durian-Application-Version | applicationVersion |
X-Durian-I-Appli-Support | iAppliSupport |
X-Durian-Movie-Format | movieFormat |
X-Durian-Flash-Support | flashSupport |
X-Durian-Flash-Version(※3) | flashVersion |
X-Durian-Max-Flash-Bytes(※3) | maxFlashBytes |
X-Durian-Ez-At-Mail | ezAtMail |
X-Durian-Device-Type | deviceType |
X-Durian-Glyph-Set-Name | glyphSetName |
X-Durian-Glyph-Set-Name2(※2) | glyphSetName |
X-Durian-Camera-Support | cameraSupport |
X-Durian-Qvga | qvga |
X-Durian-Ssl-Support | sslSupport |
X-Durian-Japanese-Filename-Support | japaneseFilenameSupport |
X-Durian-Max-Image-Bytes | maxImageBytes |
X-Durian-Fullscreen-Image-Support | fullscreenImageSupport |
X-Durian-Remote-Ip | remoteIp |
X-Durian-Gps-Support | gpsSupport |
X-Durian-Html-Mail-Support(※3) | htmlMailSupport |
X-Durian-Html-Mail-Name(※3) | htmlMailName |
X-Durian-Html-Mail-Template-Support(※3) | htmlMailTemplateSupport |
X-Durian-Html-Mail-Template-Version(※3) | htmlMailTemplateVersion |
X-Durian-Screen-Theme-Support(※3) | screenThemeSupport |
X-Durian-Gps-Support(※4) | gpsSupport |
X-Durian-Crawler(※6) | crawler |
X-Durian-Crawler-Group(※6) | crawlerGroup |
※1 2007/4/3追加
※2 2007/5/28追加
※3 2007/8/20追加
※4 2009/5/11追加
※5 2009/10/19追加
※6 2010/11/5追加
※6 2011/5/19追加
値が一つの項目は以下のように送信されます。
X-Durian-Product-Name: N-06B
送信されるヘッダの値が複数ある場合は、カンマ区切りで送信されます。
X-Durian-Image-Format: GIF, JPEG
サブキーを含むキーの場合は、サブキー=値をセミコロンで区切った形式で送信されます。
X-Durian-Markup-Language: name=CHTML; version=5.0; contentType="text/html; charset=Shift_JIS"