Android APP判断设备是否为平板的三种方法:
通过屏幕尺寸判断。一般来说,平板电脑的屏幕尺寸比手机大很多,可以根据屏幕的长宽比和尺寸等信息来区分设备类型。通过屏幕像素密度判断。一般来说,平板电脑的屏幕像素密度比手机低,可以通过像素密度来判断设备类型。通过设备参数判断。可以通过读取设备硬件参数来区分设备类型,例如可以根据设备内存、CPU性能等参数来判断是否为平板电脑。注:需要注意的是,这三种方法都有一定的局限性,不能百分之百地准确判断设备类型。
我们吸收参考网上的多种平板判断方案,同时也使用一些大厂 APP 对设备的判断进行交叉验证。 话不多说,直接上开源地址:https://github.com/gallonyin/PhoneOrTablet 为了方便大家快速验证,直接使用我们编译好的 APP: 下载地址
APP截图: 小米手机 蓝叠5(中国) 自制redroid 结论: 在蓝叠5和自制redroid上我们使用各大APP可以被验证为平板设备。
核心检查类:
package org.yameida.phoneortablet;import android.content.Context;import android.content.res.Configuration;import android.util.DisplayMetrics;import android.util.Log;import android.view.Display;import android.view.WindowManager;public class CheckUtils { private static final String TAG = "CheckUtils"; /** * 判断是否为平板 */ public static boolean isPad() { boolean result = false; String mDeviceType = SysProp.get("ro.build.characteristics", "default"); if (mDeviceType != null && mDeviceType.equalsIgnoreCase("tablet")) { result = true; } Log.d(TAG, "isPad:" + result); return result; } /** * 判断是否为平板 */ public static boolean isPad(Context context) { boolean result = false; WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); 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); // 大于7尺寸则为Pad if (screenInches >= 7.0) { result = true; } Log.d(TAG, "screenInches:" + screenInches); Log.d(TAG, "isPad:" + result); return result; } /** * 判断是否为平板 */ public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; } /** * 判断屏幕尺寸 */ public static double screenSize(Context context) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); 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); // 屏幕尺寸 return Math.sqrt(x + y); }} 参考文章Android 判断是否为平板的三种方法
喜欢