我有摩托罗拉里程碑 OS 2.2.1。我正在使用适用于手机和平板电脑的通用应用程序。我查找平板电脑或手机的逻辑如下。
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
float screenWidth = display.getWidth(); // Width in Pixels 480
float screenHeight = display.getHeight();// Height in Pixels 854
DisplayMetrics dm = new DisplayMetrics();
display.getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y); // Screen inches : 10.20469720465169
根据我的逻辑,平板电脑的屏幕尺寸必须 >= 6 英寸。
还添加了另一个逻辑,将设备视为屏幕宽度 >= 600px 的平板电脑
使用上面给出的逻辑,我得到的屏幕尺寸为 10.20 英寸,而相同的逻辑在我的所有其他设备上都可以正常工作..
我的基础 SDK 版本是 2.3.3(11) minSDK 是 3,TargetSDK 是 11。
我想在这里提到的另一件事是,在没有声明 TargetSDK 11 的情况下,我得到的 Samsung Tab 的宽度是 400,而实际是 600。我成功放置了 TargetSDK。
请建议。让我知道我是否错了..