为了账号安全,请及时绑定邮箱和手机立即绑定

如何检测设备是Android手机还是Android平板电脑?

如何检测设备是Android手机还是Android平板电脑?

大话西游666 2019-12-26 10:48:05
我有两个适用于Android平板电脑和Android手机的应用程序。对于平板电脑应用程序,我设置了android:minSdkVersion="11"。但是如今,像Galaxy S3这样的Android手机具有Android版本4.0.4,因此S3用户可以从Google Play商店下载我的平板电脑应用。我要警告电话用户在安装平板电脑应用程序时下载电话应用程序。反之亦然,平板电脑用户在运行手机应用程序时会下载平板电脑应用程序。有什么简单的方法可以检测设备类型?
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

用这个:


public static boolean isTablet(Context context) {

    return (context.getResources().getConfiguration().screenLayout

            & Configuration.SCREENLAYOUT_SIZE_MASK)

            >= Configuration.SCREENLAYOUT_SIZE_LARGE;

}

如果设备在大屏幕上运行,则返回true。


查看完整回答
反对 回复 2019-12-26
?
倚天杖

TA贡献1828条经验 获得超3个赞

您也可以尝试在资源文件中使用此

Add boolean参数。

在res / values / dimen.xml文件中,添加以下行


<bool name="isTab">false</bool>

在res / values-sw600dp / dimen.xml文件中,添加以下行:


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

然后在您的java文件中获取以下值:


if(getResources().getBoolean(R.bool.isTab)) {

    System.out.println("tablet");

} else {

    System.out.println("mobile");

}


查看完整回答
反对 回复 2019-12-26
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

此代码段将告诉您设备类型是否为7英寸或更大以及Mdpi或更高分辨率。您可以根据需要更改实现。


 private static boolean isTabletDevice(Context activityContext) {

        boolean device_large = ((activityContext.getResources().getConfiguration().screenLayout &

                Configuration.SCREENLAYOUT_SIZE_MASK) ==

                Configuration.SCREENLAYOUT_SIZE_LARGE);


        if (device_large) {

            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;

    }


查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 945 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信