在android中查找设备类型(智能手机/平板电脑)

时间:2012-07-06 13:12:16

标签: android

如何通过我的程序找到智能手机或智能手机?我尝试了android.os.Build类的所有字段。我得到的信息是

操作系统版本:2.6.35.7(DXKL2)
OS API等级:10
装置:GT-S5360
型号(和产品):GT-S5360(GT-S5360)
董事会:totoro
品牌:三星
CPU_ABI:armeabi
显示:GINGERBREAD.DXKL2
指纹:三星/ GT-S5360 / GT-S5360:2.3.6 / GINGERBREAD / DXKL2:用户/释放键


主持人:DELL152
Id:GINGERBREAD
制造商:samsung
输入:user
用户:root

此信息对我没有帮助。有人能告诉我如何找到它吗?

2 个答案:

答案 0 :(得分:3)

你真的想知道什么?您想知道设备是否可以拨打电话吗?你想知道屏幕有多大吗?有API可以找到这些东西。

'智能手机'和'平板电脑'是营销标签 - 它们在技术层面并不是真的意味着很多,因为人们可以制作一个平板电脑大小的设备,通过手机网络拨打电话,而且可以制作手机没有Wi-Fi之外任何网络的大小的设备!

告诉我们您真正想知道的内容,我们可以为您指出正确的API。

答案 1 :(得分: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的回答所述,有许多技术方面使这种分类变得困难(如果不是不可能的话)。

希望这会有所帮助:)

相关问题