知方号

知方号

Android APP检查设备是否为平板<判断活动是否为游戏的标准是>

正文

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 判断是否为平板的三种方法

喜欢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。