据我所知,我们可以轻松地检测到抖动中的操作系统。现在我只是在徘徊,是否有任何方法可以确定应用程序在哪个设备上运行。例如,如果应用程序正在移动设备或平板电脑设备上运行。它们都可以具有相同的操作系统。原因是由于屏幕尺寸,我想在我的一个小部件中显示例如移动设备上的图标和平板电脑上带有图标的文本。我知道我们可以使用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 - flutter 检测装置类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61245770/

10-16 22:06