sách gpt4 ai đã đi

安卓。确定设备是否为平板电脑的最佳方法是什么?

In lại 作者:行者123 更新时间:2023-12-04 23:58:37 30 4
mua khóa gpt4 Nike

我需要编写一个方法来确定设备是平板电脑还是手机。我不需要根据这个显示不同的用户界面。我只需要有关设备的信息,以便将来我可以将其发送到指标。
在互联网上,我找到了很多方法来确定设备是否是平板电脑。我已经测试了所有这些方法并且它们有效。当然,我无法在各种设备上进行测试。所以我想知道确定设备是否是平板电脑的最佳和最准确的方法。
这是我能够找到的方法的列表:
1) 使用最小宽度限定符
hiện hữu res/values-sw600dp/attrs.xml :


true

hiện hữu res/values/attrs.xml

false

然后:
fun isTablet() = context.resources.getBoolean(R.bool.isTablet)
我对这种方式感到担忧。可能值得添加资源 res/values-sw720dp/attrs.xmlVà:

true

2) sử dụng TelephonyManager
  fun isTablet(context: Context) =
with(context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager) {
this.phoneType == TelephonyManager.PHONE_TYPE_NONE
}
3) sử dụng Configuration :
fun isTablet(context: Context): Boolean {
return ((context.resources.configuration.screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE)
}
4) sử dụng DisplayMetrics :
 fun isTablet(activity: Activity): Boolean {
val metrics = DisplayMetrics()
activity.windowManager.defaultDisplay.getMetrics(metrics)
val yInches = metrics.heightPixels / metrics.ydpi
val xInches = metrics.widthPixels / metrics.xdpi
val diagonalInches = sqrt((xInches * xInches + yInches * yInches).toDouble())
return diagonalInches >= 6.5
}
请帮助我找到 100% 有效的最佳方法。

1 Câu trả lời

在大多数情况下,这些是完全不同的事情。
方法 1 是检查设备屏幕最小边的长度。基本上它是说平板电脑在最小尺寸上超过 4 英寸(在任何正常的屏幕分辨率上都将至少为英寸诊断)。
方法 2 是说平板电脑是没有能力打电话的任何东西。
方法 3 正在检查其至少 480x640 dp,或至少 3 英寸 x 4 英寸。 (它可以像 5 英寸诊断仪一样小)。
方法4是精确测量诊断。这消除了方法 1 的一些理论问题,但它做了很多毫无意义的数学运算(而且这个实现没有优化)。
所有这一切都取决于您对平板电脑的定义。没有真正的定义。方法 1,3 和 4 是基于大小的。方法 2 的理念是,如果它能够打电话,你就会称它为手机而不是平板电脑。
假设您想要一个基于尺寸的解决方案,我会选择 1。方法 3(无法区分小平板电脑和大平板电脑)更准确、更可扩展,并且比方法 4(和角落)更快某些东西可以通过方法 1 但方法 4 捕获它们的情况在现实世界中确实不会发生)。

关于安卓。确定设备是否为平板电脑的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71374537/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com