スマートフォンとタブレットをAPIで区別する方法

今作っているAndroidアプリでスマートフォンは縦固定、タブレットは横固定の画面にしたかった。manifestのactivityで縦固定を指定しているのだが、タブレットの時だけ横固定にするにはどうしたらいいのだろうと思ってググってたらActivityのonCreateで指定するぐらいしかなさそうだった。とりあえず、その方向でいろいろ調べると以下のサイトが参考になった。

参考にと言うかコードをほぼそのままコピー。

final int SCREENLAYOUT_SIZE_XLARGE = 4; // tablet
int layoutSize = this.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;
if (layoutSize == SCREENLAYOUT_SIZE_XLARGE) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

Android 1.6でも動くようにしたかったのでとりあえずこれで応急処置は完了。これで期待通りにエミュレータ上では動いていた。タブレット対応は他にもいろいろありそうで大変そうだな。