如何在Android中检测平板电脑或手机

时间:2014-02-24 05:39:44

标签: android mobile tablet

您好我已经创建了一个应用程序,因为我想在启动时检测平板电脑或移动设备。

我有5.5英寸平板电脑。

如何使它成为可能?

2 个答案:

答案 0 :(得分:1)

试试这个

 public static boolean isTabletDevice(Context activityContext) {
    // Verifies if the Generalized Size of the device is XLARGE to be
    // considered a Tablet
    boolean xlarge = ((activityContext.getResources().getConfiguration().screenLayout & 
                        Configuration.SCREENLAYOUT_SIZE_MASK) == 
                        Configuration.SCREENLAYOUT_SIZE_XLARGE);

    // If XLarge, checks if the Generalized Density is at least MDPI
    // (160dpi)
    if (xlarge) {
        DisplayMetrics metrics = new DisplayMetrics();
        Activity activity = (Activity) activityContext;
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

        // MDPI=160, DEFAULT=160, DENSITY_HIGH=240, DENSITY_MEDIUM=160,
        // DENSITY_TV=213, DENSITY_XHIGH=320
        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) {

            // Yes, this is a tablet!
            return true;
        }
    }

    // No, this is not a tablet!
    return false;
}

答案 1 :(得分:0)

在android中有像values-normal-ldpi这样的目录,可以访问手机的尺寸,7GB平板电脑的值为sw600dp,10英寸平板电脑的值为sw720dp。您可以在这些目录中使用布尔变量,如: -

<bool name="is_tablet">true</bool> 

将两个平板电脑目录设置为true,将电话设置为false。 像

一样访问它
    context.getResources().getBoolean(R.bool.is_tablet);

如果它返回true,那就是平板电脑其他电话。