Androidのユーザーエージェントから情報を取得する

Google ウェブマスター向け公式ブログ: Android のユーザーエージェントの検出について

ユーザーエージェントの内容に応じてモバイル サイトにリダイレクトするかどうかを判断するのであれば、文字列「android」だけではなく、「mobile」と「android」の両方を検出してほしいということです。

Android Developers Blog: Android Browser User-Agent Issues

ふーん。そうかー。

なるほど、docomoAndroidタブレットOptimus Pad L-06Cのユーザーエージェントには「mobile」がないですね。

Mozilla/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

でも、少し前のGALAXY Tab SC-01Cには「mobile」が含まれていますので注意。

Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Opera mobileのことを考慮して、「android」と「mobi」で判定するのはどうでしょうか?

Opera/9.80 (Android 2.3.2; Linux; Opera Mobi/ADR-1103311355; U; ja) Presto/2.7.81 Version/11.00
#!/usr/bin/perl

my $is_android = 0;
my $is_smart_phone = 0;

if ( $ENV{HTTP_USER_AGENT} =~ /android/i and $ENV{HTTP_USER_AGENT} =~ /mobi/i ) {
    $is_android = 1;
    $is_smart_phone = 1;
}

【関連記事】
Andoridのユーザーエージェントから情報を取得する - Kimura.Memo
Android+Opera mobile - Kimura.Memo