即使在“缩放到填充屏幕”模式下,检查Android设备是否是平板电脑

时间:2014-01-21 08:42:42

标签: android tablet

我有一个可以安装在手机或平板电脑上的Android应用程序。 然而,该应用程序与平板电脑设计并不完全兼容,因此使用“缩放到填充屏幕”模式更方便。

在某个过程中,我需要报告设备是否是平板电脑。 我一直在使用this question中的方法。 (在values-sw600dpvalues-xlarge文件夹中保存配置值)

但是,当使用“缩放到填充屏幕”模式时,它无法正常工作。 正在提取的值是values中的默认值,而不是存储在“平板电脑相关”文件夹中的值。

我还尝试使用getConfiguration().screenLayout检索屏幕布局,在这种情况下,当我使用其他模式时,我正在检索SCREENLAYOUT_SIZE_NORMAL而不是SCREENLAYOUT_SIZE_XLARGE - “伸展填写屏幕“。

即使处于“缩放到填充屏幕”模式,有没有办法知道运行应用程序的设备是平板电脑?

1 个答案:

答案 0 :(得分:0)

这在正常模式下对我来说很好。如果它在缩放到填充模式下工作,请检查它。

 private static boolean isTabletDevice(Context activityContext) {

            DisplayMetrics metrics = new DisplayMetrics();
            Activity activity = (Activity) activityContext;
            activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

            if (metrics.densityDpi == DisplayMetrics.DENSITY_DEFAULT
                    || metrics.densityDpi == DisplayMetrics.DENSITY_HIGH
                    || metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM
                    || metrics.densityDpi == DisplayMetrics.DENSITY_TV
                    || metrics.densityDpi == DisplayMetrics.DENSITY_XHIGH) {
                AppInstance.getLogger().logD("DeviceHelper","IsTabletDevice-True");
                return true;

        }
        AppInstance.getLogger().logD("DeviceHelper","IsTabletDevice-False");
        return false;
    }

您还可以检查设备的屏幕尺寸并计算屏幕的大小(可能是对角线),如果它大于7英寸或其他平板电脑:

int width = activityContext.getResources().getDisplayMetrics().widthPixels;
int height = activityContext.getResources().getDisplayMetrics().heightPixels;