From 4172f9ce66b1fe68c0ea481ea031cb9145f5764e Mon Sep 17 00:00:00 2001 From: dujing Date: Wed, 11 Dec 2024 15:45:51 +0800 Subject: [PATCH] =?UTF-8?q?device=5Finfo=5Fplus3.22dart=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dujing --- .../device_info_plus/example/lib/main.dart | 5 +--- .../lib/device_info_plus.dart | 26 ++++++++++++++++ .../lib/device_info_plus_ohos.dart | 30 ------------------- .../lib/src/{ => model}/ohos_device_info.dart | 0 4 files changed, 27 insertions(+), 34 deletions(-) delete mode 100644 packages/device_info_plus/device_info_plus/lib/device_info_plus_ohos.dart rename packages/device_info_plus/device_info_plus/lib/src/{ => model}/ohos_device_info.dart (100%) diff --git a/packages/device_info_plus/device_info_plus/example/lib/main.dart b/packages/device_info_plus/device_info_plus/example/lib/main.dart index f9547e39..3243e27c 100644 --- a/packages/device_info_plus/device_info_plus/example/lib/main.dart +++ b/packages/device_info_plus/device_info_plus/example/lib/main.dart @@ -8,7 +8,6 @@ import 'dart:async'; import 'dart:developer' as developer; import 'package:device_info_plus/device_info_plus.dart'; -import 'package:device_info_plus/device_info_plus_ohos.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -30,8 +29,6 @@ class MyApp extends StatefulWidget { class _MyAppState extends State { static final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); - static final DeviceInfoOhosPlugin deviceInfoOhosPlugin = - DeviceInfoOhosPlugin(); Map _deviceData = {}; @override @@ -66,7 +63,7 @@ class _MyAppState extends State { deviceData = _readMacOsDeviceInfo(await deviceInfoPlugin.macOsInfo); break; case TargetPlatform.ohos: - deviceData = (await deviceInfoOhosPlugin.ohosDeviceInfo).data; + deviceData = (await deviceInfoPlugin.ohosDeviceInfo).data; break; default: deviceData = { diff --git a/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart b/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart index 38c83762..0e0dabc5 100644 --- a/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart +++ b/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart @@ -5,7 +5,9 @@ import 'dart:async'; import 'dart:io'; +import 'package:device_info_plus/src/model/ohos_device_info.dart'; import 'package:device_info_plus_platform_interface/device_info_plus_platform_interface.dart'; +import 'package:device_info_plus_platform_interface/method_channel/method_channel_device_info.dart'; import 'package:flutter/foundation.dart'; import 'src/model/android_device_info.dart'; @@ -39,6 +41,28 @@ class DeviceInfoPlugin { // This is to manually endorse the Linux plugin until automatic registration // of dart plugins is implemented. // See https://github.com/flutter/flutter/issues/52267 for more details. + static MethodChannelDeviceInfo get _ohosPlatform { + return DeviceInfoPlatform.instance as MethodChannelDeviceInfo; + } + + /// This information does not change from call to call. Cache it. + OhosDeviceInfo? _cachedOhosDeviceInfo; + + /// Information derived from `@ohos.deviceInfo`. + /// + /// https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-device-info-0000001428061996-V3 + Future get ohosDeviceInfo async => _cachedOhosDeviceInfo ??= + OhosDeviceInfo.fromMap((await _ohosPlatform.deviceInfo()).data); + + /// Requires permission: ohos.permission.sec.ACCESS_UDID (System permission, only open to system apps). + /// Device serial number. + /// Device Udid. + Future get ohosAccessUDIDInfo async => + OhosAccessUDIDInfo.fromMap( + // ignore: invalid_use_of_visible_for_testing_member + (await _ohosPlatform.channel.invokeMethod('getAccessUDIDInfo')) + .cast()); + static DeviceInfoPlatform get _platform { return DeviceInfoPlatform.instance; } @@ -107,6 +131,8 @@ class DeviceInfoPlugin { return macOsInfo; } else if (Platform.isWindows) { return windowsInfo; + } else if (Platform.isOhos) { + return ohosDeviceInfo; } } // allow for extension of the plugin diff --git a/packages/device_info_plus/device_info_plus/lib/device_info_plus_ohos.dart b/packages/device_info_plus/device_info_plus/lib/device_info_plus_ohos.dart deleted file mode 100644 index fb244212..00000000 --- a/packages/device_info_plus/device_info_plus/lib/device_info_plus_ohos.dart +++ /dev/null @@ -1,30 +0,0 @@ -import 'package:device_info_plus/src/ohos_device_info.dart'; -import 'package:device_info_plus_platform_interface/device_info_plus_platform_interface.dart'; -import 'package:device_info_plus_platform_interface/method_channel/method_channel_device_info.dart'; - -export 'src/ohos_device_info.dart'; - -class DeviceInfoOhosPlugin { - DeviceInfoOhosPlugin(); - static MethodChannelDeviceInfo get _platform { - return DeviceInfoPlatform.instance as MethodChannelDeviceInfo; - } - - /// This information does not change from call to call. Cache it. - OhosDeviceInfo? _cachedOhosDeviceInfo; - - /// Information derived from `@ohos.deviceInfo`. - /// - /// https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-device-info-0000001428061996-V3 - Future get ohosDeviceInfo async => _cachedOhosDeviceInfo ??= - OhosDeviceInfo.fromMap((await _platform.deviceInfo()).data); - - /// Requires permission: ohos.permission.sec.ACCESS_UDID (System permission, only open to system apps). - /// Device serial number. - /// Device Udid. - Future get ohosAccessUDIDInfo async => - OhosAccessUDIDInfo.fromMap( - // ignore: invalid_use_of_visible_for_testing_member - (await _platform.channel.invokeMethod('getAccessUDIDInfo')) - .cast()); -} diff --git a/packages/device_info_plus/device_info_plus/lib/src/ohos_device_info.dart b/packages/device_info_plus/device_info_plus/lib/src/model/ohos_device_info.dart similarity index 100% rename from packages/device_info_plus/device_info_plus/lib/src/ohos_device_info.dart rename to packages/device_info_plus/device_info_plus/lib/src/model/ohos_device_info.dart -- Gitee