确定设备是智能手机还是平板电脑? [复制]

2023-12-07

我想获取有关设备的信息,看看它是智能手机还是平板电脑。我该怎么做?

我想根据设备类型显示资源中的不同网页:

String s="Debug-infos:";
s += "\n OS Version: " + System.getProperty("os.version") + "(" +    android.os.Build.VERSION.INCREMENTAL + ")";
s += "\n OS API Level: " + android.os.Build.VERSION.SDK;
s += "\n Device: " + android.os.Build.DEVICE;
s += "\n Model (and Product): " + android.os.Build.MODEL + " ("+ android.os.Build.PRODUCT + ")";

然而,这对我的情况似乎没有用。


这个解决方案现在对我有用:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;

if (SharedCode.width > 1023 || SharedCode.height > 1023){
   //code for big screen (like tablet)
}else{
   //code for small screen (like smartphone)
}

Android 培训中讨论了该主题:

使用最小宽度限定符

如果您阅读整个主题,他们会解释如何在特定值文件(如 res/values-sw600dp/attrs.xml)中设置布尔值:

<resources>
    <bool name="isTablet">true</bool>
</resources>

因为sw600dp限定符仅对android 3.2以上的平台有效。如果您想确保此技术适用于所有平台(3.2 之前),请在 res/values-xlarge 文件夹中创建相同的文件:

<resources>
    <bool name="isTablet">true</bool>
</resources>

然后,在“标准”值文件(如 res/values/attrs.xml)中,将布尔值设置为 false:

<resources>
    <bool name="isTablet">false</bool>
</resources>

然后在您的活动中,您可以获取该值并检查您是否在平板电脑尺寸的设备中运行:

boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (tabletSize) {
    // do something
} else {
    // do something else
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定设备是智能手机还是平板电脑? [复制] 的相关文章

随机推荐

  • R 中的“错误恢复文件幻数”错误

    As in 加载 R 工作区时什么可能导致 错误的幻数 错误以及如何避免它 and R 有幻数 PNG 错误 我得到一个错误恢复文件幻数 error gt load fossilien dat Error bad restore file
  • 沙盒阻止我格式化字符串

    我有一个简单的常规脚本 node master echo I am about to try to use String format def jjj String format bob echo jjj 如果我将此脚本直接放入我的作业配置
  • GridLayout 未填充 JPanel

    我遇到 GridLayout 问题 并且整个 JPanel 未填充 我有一个 N M 网格 我用 N M 瓷砖填充它 它们扩展了 JPanel 添加所有这些图块后 JPanel 的底部和右侧仍然有空间 我认为 GridLayout 应该填满
  • Stateflow 在 reyclerview android kotlin 中引用整个数据

    嘿嘿我正在学习状态流在 Android 科特林中 我正在创建一个反向对话日历视图回收者视图 In my mainactivity有一个fragment 里面有我reyclerview 我的目标是做分页的东西 in my 回收者视图所以我先加
  • 使用 procf//status 了解进程状态

    我正在 Solaris 上工作 我知道如果有一个进程正在运行 就会有一个名为 proc
  • D lang - 在同一程序中使用 read 和 readln()

    我的 D 程序遇到了一个非常奇怪的问题 read s variable 本身工作得很好 而 readln variable 本身工作得很好 但是当我将两者放在一起时 readln 似乎被忽略了 使用 gdc 和 dmd 均发生错误 impo
  • 从头开始制作Android聊天应用程序

    我需要为Android 制作聊天应用程序 我想到使用PHP脚本来实现聊天应用程序 基本思想是将消息从android客户端发送到PHP脚本 并利用PHP脚本将消息发送到MySQL数据库 这些消息将广播给其他人 但问题是自动向其他人广播消息 有
  • 从列表列表中删除重复项

    我有一个Python列表列表 k 1 2 4 5 6 2 1 2 3 4 我想从中删除重复的元素 如果它是一个普通列表而不是我可以使用的列表set 但不幸的是 该列表不可散列 并且无法创建列表集 仅元组 所以我可以将所有列表转换为元组 然后
  • 如何创建文件下载按钮? 和 Axios 不工作

    我试图在我的个人网站上创建一个下载按钮 供人们下载我的 docx 简历 但遇到了一些问题 首先我用简单的 href 链接来做到这一点 a href xxx docx a
  • Jquery对话框按钮返回值

    我正在使用jquery对话框 我想要实现的是当用户按 确定 时 编程继续进行 当按 取消 时 它停止 function displaymessage confirm dialog buttons OK function this dialo
  • C# 中同步线程访问和写入

    我有一个用 C 编写的多线程端口扫描仪应用程序 我想在应用程序运行时将一些内容打印到控制台和日志文件 因此 我有以下帮助程序类 它可以很好地写入日志文件和控制台 public class Output private const strin
  • R data.table - 将函数 A 应用于某些列,将函数 B 应用于其他一些列

    我想聚合数据表的行 但聚合函数取决于列的名称 例如 如果列名称是 variable1 or variable2 然后应用mean 功能 variable3 然后应用max 功能 variable4 然后应用sd 功能 我的数据表总是有一个d
  • 带按钮的 Html 两种语言选项(无需重定向到不同页面)

    我正在尝试为网站提供第二语言选项 以下是该项目的详细信息 1 我并没有尝试使用谷歌翻译系统或任何其他自动翻译服务来更改整个网站语言 2 我只是想翻译网站中的主要描述部分 3 我已经编写并保存了描述文本的翻译版本 4 我还在一个单独的文件中制
  • 如何正确观察非标准事件?

    我是反应式扩展的新手 正在处理一个具有如下定义事件的 COM 库 public delegate void MyDelegate int requestId double price int amount public event MyDe
  • OSError:安装 h2o 时版本不匹配?

    我是 H2o 新手 总部设在文档我为 python 安装了 H2o pip install h2o Then In import h2o h2o init Out OSError Traceback most recent call las
  • 如何将无符号整数加载到 SIMD 中

    我有一个 C 程序 其中有一些无符号整数数组 我正在使用这个声明uint32 t 我想使用 SIMD 对每个数组中存储的数据执行一些操作 这就是我陷入困境的地方 因为看起来大多数 SSE 和 SSE2 函数只支持 float 和 doubl
  • 如何从动态范围中分割文本?

    我从 ERP 系统下载了一个很长的数据集 他们是管子 划定的 我必须将其拆分为单独的列 我可以用FILTERXML or TEXTSPLIT 将它们拆分为列 我试图动态使用 Textsplit 函数 以便如果有任何新数据到达末尾行 它会自动
  • Swift 的 Guard 关键字

    Swift 2 引入了guard关键字 可用于确保各种数据已配置就绪 我看到的一个例子这个网站演示了一个submitTapped函数 func submitTapped guard username text characters coun
  • javascript for循环更改原始列表变量

    我有一个名为响应的对象集合 我正在创建另一个名为的变量object这是一个空对象并创建object array并将其设置为响应变量 我想我正在创建一个新的范围 但是 如果我在里面设置年龄object array作为空 这将我的响应数组中的年
  • 确定设备是智能手机还是平板电脑? [复制]

    这个问题在这里已经有答案了 我想获取有关设备的信息 看看它是智能手机还是平板电脑 我该怎么做 我想根据设备类型显示资源中的不同网页 String s Debug infos s n OS Version System getProperty