2

プログラムを使用して、デバイスがスマートフォンまたはテーブルであることを確認するにはどうすればよいですか? android.os.Build クラスのすべてのフィールドを試しました。私が得た情報は、

OS バージョン: 2.6.35.7(DXKL2)
OS API レベル: 10
デバイス: GT-S5360
モデル (および製品): GT-S5360 (GT-S5360)
ボード: totoro
ブランド: samsung
CPU_ABI: armeabi
ディスプレイ: GINGERBREAD.DXKL2
フィンガープリント: samsung /GT-S5360/GT-S5360:2.3.6/GINGERBREAD/DXKL2:user/release-keys
ホスト: DELL152
ID: GINGERBREAD
メーカー: samsung
タイプ: ユーザー
ユーザー: root

この情報は役に立ちません。誰かがそれを見つける方法を教えてもらえますか?

4

2 に答える 2

3

本当に知りたいことは何ですか?デバイスが通話できるかどうかを知りたいですか? 画面の大きさを知りたいですか?それらを見つけるための API があります。

「スマートフォン」と「タブレット」はマーケティング ラベルです。技術的なレベルではあまり意味がありません。セル ネットワーク経由で電話をかけるタブレット サイズのデバイスを作成したり、電話サイズのデバイスを作成したりできるからです。 Wi-Fi以外のネットワークはありません!

実際に知りたいことを教えてください。適切な API を紹介できます。

于 2012-07-06T13:27:22.107 に答える
2

このコードを呼び出すと、画面密度を確認できます。

int screen_density = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK);

if (screen_density == Configuration.SCREENLAYOUT_SIZE_LARGE || screen_density == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
     //The device is a tablet or at least has the screen density of a tablet
}

以下のコードで画面サイズを取得することもできます。

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

最後に、android Honeycomb(3.+) はタブレットでのみ実行されるため、次を使用して Android のバージョンを確認できます。

int currentapiVersion = android.os.Build.VERSION.SDK_INT;

if(currentapiVersion == android.os.Build.VERSION_CODES.HONEYCOMB ||
   currentapiVersion == android.os.Build.VERSION_CODES.HONEYCOMB_MR1 || 
   currentapiVersion == android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {

  //The device is a tablet
}

編集: 明確にするために、上記のコードは、デバイスをタブレットとして分類するためのデバイスの画面サイズと密度に関心があることを前提としています。Michael Kohne の回答から述べたように、この分類を困難にする多くの技術的側面があります (不可能ではないにしても)。

お役に立てれば:)

于 2012-07-06T13:27:00.270 に答える