flutter 检测装置类型

标签 flutter dart

据我所知,我们可以很容易地检测到 flutter 中的操作系统。现在我只是想知道是否有任何方法可以确定应用程序运行在哪个设备上。例如,如果应用程序在移动设备或平板设备上运行。他们都可以有相同的操作系统。原因是由于屏幕尺寸,我想在我的一个小部件中显示,例如移动设备上的图标和平板设备上带有图标的文本。我知道我们可以使用 MediaQuery.of(context).size.width 来找到屏幕的宽度,但是我不确定这是否是正确的方法,如果是的话,那是什么每个设备的可靠断点

最佳答案

您可以使用 flutter_device_type 中的以下代码片段包裹:

import 'dart:ui' as ui;

bool isTablet;
bool isPhone;

final double devicePixelRatio = ui.window.devicePixelRatio;
final ui.Size size = ui.window.physicalSize;
final double width = size.width;
final double height = size.height;


if(devicePixelRatio < 2 && (width >= 1000 || height >= 1000)) {
  isTablet = true;
  isPhone = false;
}
else if(devicePixelRatio == 2 && (width >= 1920 || height >= 1920)) {
  isTablet = true;
  isPhone = false;
}
else {
  isTablet = false;
  isPhone = true;
}

或者要获得更全面的信息,您可以使用 device_info包。

关于 flutter 检测装置类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61245770/

相关文章:

flutter - 如何实现嵌套在ui flutter中的json数组

android - 请创建文件,然后再次运行此命令

android - Flutter开发(flutter-dev)›需要紧急帮助…由于gradle问题,我无法在android设备中运行flutter应用,并且无法构建apk

flutter - 如何在 flutter 中使用精度对整数进行舍入

flutter - Dart-lang,如何通过合并元素将List <int>映射到List <String>?

javascript - 跨语言网络 worker ?

flutter - 为什么我的函数不接受Colors类型的参数名称?

android - 如何编写使用自定义应用程序的 Flutter (Android) 插件?

Flutter Android 通知图标(灰色方 block )

firebase - Flutter firestore 复合查询