1

我有摩托罗拉里程碑 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。

请建议。让我知道我是否错了..

4

0 回答 0