有没有一种调用可以确定 Flutter 在模拟器还是实体设备上运行?
我正在扫描 QR 码,并希望跳过,因为相机不可用。
我期望在 platform.dart
[1] 中找到这个调用,但它并不存在。
[1]https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/foundation/platform.dart
如果我真的需要,我想象我可以创建一个插件,但我希望它已经存在。
有没有一种调用可以确定 Flutter 在模拟器还是实体设备上运行?
我正在扫描 QR 码,并希望跳过,因为相机不可用。
我期望在 platform.dart
[1] 中找到这个调用,但它并不存在。
[1]https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/foundation/platform.dart
如果我真的需要,我想象我可以创建一个插件,但我希望它已经存在。
通过使用device info plus插件,您可以获取有关正在运行的设备的各种信息,包括'isPhysicalDevice',适用于Android
和iOS
(虽然您必须独立阅读它们)。
现已成为Flutter Community Plus的一部分(https://plus.fluttercommunity.dev/)
设备信息 Plus 文档:https://plus.fluttercommunity.dev/docs/device_info_plus/overview
例如:
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if(Platform.isIOS){
var iosInfo = await deviceInfo.iosInfo;
if(iosInfo.isPhysicalDevice){...}
}
虽然我来晚了一点,但如果还有其他人需要,这个可以帮到他们。 你可以使用这个包: https://pub.dev/packages/safe_device
在Pubspec.yaml
文件中添加最新版本,然后导入它:
import 'package:safe_device/safe_device.dart';
然后,您可以检查设备是否为模拟器:
bool isRealDevice = await SafeDevice.isRealDevice;
import 'package:flutter_is_emulator/flutter_is_emulator.dart';
....
bool isAnEmulator = await FlutterIsEmulator.isDeviceAnEmulatorOrASimulator;
isDeviceAnEmulatorOrASimulator
的类型是 Future<bool*>*
。 - Luke Hutchison
IS_REAL_DEVICE
一样简单,也可以像插件甚至是单独的main.dart文件一样复杂。 - sjsam