我想获取有关设备的信息,以查看它是智能手机还是平板电脑。我该怎么做?
我想根据设备类型显示来自资源的不同网页:
String s="Debug-infos:"; s += "\n OS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")"; s += "\n OS API Level: " + android.os.Build.VERSION.SDK; s += "\n Device: " + android.os.Build.DEVICE; s += "\n Model (and Product): " + android.os.Build.MODEL + " ("+ android.os.Build.PRODUCT + ")";
但是,这对我的情况似乎没用。
这个解决方案现在对我有用:
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int width = metrics.widthPixels; int height = metrics.heightPixels; if (SharedCode.width > 1023 || SharedCode.height > 1023){ //code for big screen (like tablet) }else{ //code for small screen (like smartphone) }
Android 培训中讨论了这个主题:
使用最小宽度限定符
如果您阅读了整个主题,他们会解释如何在特定值文件(如 res/values-sw600dp/attrs.xml)中设置布尔值:
<resources> <bool name="isTablet">true</bool> </resources>
因为 sw600dp 限定符只对 android 3.2 以上的平台有效。如果您想确保此技术适用于所有平台(3.2 之前),请在 res/values- xlarge 文件夹中创建相同的文件:
然后,在“标准”值文件(如 res/values/attrs.xml)中,将布尔值设置为 false:
<resources> <bool name="isTablet">false</bool> </resources>
然后在您的活动中,您可以获得此值并检查您是否在平板电脑大小的设备中运行:
boolean tabletSize = getResources().getBoolean(R.bool.isTablet); if (tabletSize) { // do something } else { // do something else }