device_id.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'dart:io';
  2. import 'package:appflowy/startup/startup.dart';
  3. import 'package:appflowy_backend/log.dart';
  4. import 'package:device_info_plus/device_info_plus.dart';
  5. import 'package:flutter/services.dart';
  6. final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
  7. Future<String> getDeviceId() async {
  8. if (integrationMode().isTest) {
  9. return "test_device_id";
  10. }
  11. String deviceId = "";
  12. try {
  13. if (Platform.isAndroid) {
  14. final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
  15. deviceId = androidInfo.device;
  16. } else if (Platform.isIOS) {
  17. final IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
  18. deviceId = iosInfo.identifierForVendor ?? "";
  19. } else if (Platform.isMacOS) {
  20. final MacOsDeviceInfo macInfo = await deviceInfo.macOsInfo;
  21. deviceId = macInfo.systemGUID ?? "";
  22. } else if (Platform.isWindows) {
  23. final WindowsDeviceInfo windowsInfo = await deviceInfo.windowsInfo;
  24. deviceId = windowsInfo.computerName;
  25. } else if (Platform.isLinux) {
  26. final LinuxDeviceInfo linuxInfo = await deviceInfo.linuxInfo;
  27. deviceId = linuxInfo.machineId ?? "";
  28. }
  29. } on PlatformException {
  30. Log.error('Failed to get platform version');
  31. }
  32. return deviceId;
  33. }