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

平板电脑或手机-android

平板电脑或手机-android

胡子哥哥 2019-07-02 16:46:59
平板电脑或手机-android有没有一种方法来检查用户使用的是平板电脑还是手机?我的倾斜功能和我的新平板电脑(变压器)有问题
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

这篇文章帮了我很大的忙,

不幸的是,我没有必要的声誉来评估所有帮助我的答案。

我需要识别我的设备是平板电脑还是手机,这样我就能够实现屏幕的逻辑。在我的分析中,从MDPI开始,平板电脑必须超过7英寸(XLarge)。

下面的代码是基于这篇文章创建的。

/**
 * Checks if the device is a tablet or a phone
 * 
 * @param activityContext
 *            The Activity Context.
 * @return Returns true if the device is a Tablet
 */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;}


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 408 浏览

添加回答

举报

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