我想获取有关设备的信息,以查看它是智能手机还是平板电脑。我该怎么做?
我想根据设备类型从资源中显示不同的网页:
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 培训中讨论了这个主题:
Use the Smallest-width Qualifier
如果您阅读了整个主题,它们会解释如何在特定值文件(如 res/values-sw600dp/attrs.xml)中设置 bool 值:
<resources>
<bool name="isTablet">true</bool>
</resources>
因为 sw600dp 限定符仅对 android 3.2 以上的平台有效。如果您想确保此技术适用于所有平台(3.2 之前),请在 res/values-xlarge 文件夹中创建相同的文件:
<resources>
<bool name="isTablet">true</bool>
</resources>
然后,在“标准”值文件(如 res/values/attrs.xml)中,将 bool 值设置为 false:
<resources>
<bool name="isTablet">false</bool>
</resources>
然后在您的 Activity 中,您可以获取此值并检查您是否在平板电脑大小的设备中运行:
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (tabletSize) {
// do something
} else {
// do something else
}
关于android - 确定设备是智能手机还是平板电脑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9279111/