From cc07c82c4e21ad546cb51dfd8899b88cb8670413 Mon Sep 17 00:00:00 2001 From: StanleyCocos Date: Fri, 5 Sep 2025 15:54:06 +0800 Subject: [PATCH 1/4] refactor: mark `serialNumber` as deprecated and always return "unknown" --- .../plus/device_info/MethodCallHandlerImpl.kt | 13 +------------ .../lib/src/model/android_device_info.dart | 2 ++ .../test/model/android_device_info_fake.dart | 2 +- .../test/model/android_device_info_test.dart | 2 +- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt b/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt index 58d512bc29..965bc0ad70 100644 --- a/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt +++ b/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt @@ -80,18 +80,7 @@ internal class MethodCallHandlerImpl( build["isLowRamDevice"] = memoryInfo.lowMemory build["physicalRamSize"] = memoryInfo.totalMem / 1048576L // Mb build["availableRamSize"] = memoryInfo.availMem / 1048576L // Mb - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - build["serialNumber"] = try { - Build.getSerial() - } catch (ex: SecurityException) { - Build.UNKNOWN - } - } else { - @Suppress("DEPRECATION") - build["serialNumber"] = Build.SERIAL - } - + build["serialNumber"] = Build.UNKNOWN result.success(build) } else { result.notImplemented() diff --git a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart index bc8ead99b8..d01b42541e 100644 --- a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart +++ b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart @@ -155,6 +155,8 @@ class AndroidDeviceInfo extends BaseDeviceInfo { /// /// There are special restrictions on this identifier, more info here: /// https://developer.android.com/reference/android/os/Build#getSerial() + @Deprecated('This property is deprecated and will be removed in a future release. ' + 'Currently, it always returns Build.UNKNOWN.') final String serialNumber; /// `true` if the application is running on a low-RAM device, `false` otherwise. diff --git a/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart b/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart index 16b1660acb..d274b41195 100644 --- a/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart +++ b/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart @@ -39,7 +39,7 @@ const _fakeAndroidDeviceInfo = { 'version': _fakeAndroidBuildVersion, 'supported64BitAbis': _fakeSupported64BitAbis, 'supported32BitAbis': _fakeSupported32BitAbis, - 'serialNumber': 'SERIAL', + 'serialNumber': 'unknown', 'isLowRamDevice': false, 'physicalRamSize': 8192, 'availableRamSize': 4096, diff --git a/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart b/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart index 96fa3611ce..88912c883b 100644 --- a/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart +++ b/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart @@ -41,7 +41,7 @@ void main() { expect(androidDeviceInfo.version.codename, 'codename'); expect(androidDeviceInfo.version.incremental, 'incremental'); expect(androidDeviceInfo.version.securityPatch, 'securityPatch'); - expect(androidDeviceInfo.serialNumber, 'SERIAL'); + expect(androidDeviceInfo.serialNumber, 'unknown'); expect(androidDeviceInfo.isLowRamDevice, false); expect(androidDeviceInfo.physicalRamSize, 8192); expect(androidDeviceInfo.availableRamSize, 4096); From a8a74d6554a93815970e6a81a70617f626b6d466 Mon Sep 17 00:00:00 2001 From: StanleyCocos Date: Fri, 5 Sep 2025 16:58:08 +0800 Subject: [PATCH 2/4] fix: code format --- .../example/integration_test/device_info_plus_test.dart | 3 ++- .../device_info_plus/device_info_plus/example/lib/main.dart | 2 +- .../device_info_plus/lib/src/model/android_device_info.dart | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart b/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart index 2cb0a98006..5e66e140c9 100644 --- a/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart +++ b/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart @@ -109,7 +109,8 @@ void main() { expect(androidInfo.type, isNotNull); expect(androidInfo.isPhysicalDevice, isNotNull); expect(androidInfo.systemFeatures, isNotNull); - expect(androidInfo.serialNumber, isNotNull); + expect( + androidInfo.serialNumber, isNotNull); // ignore: deprecated_member_use }, skip: !Platform.isAndroid); testWidgets('Check all macos info values are available', 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 89004e302c..7a3cb214af 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 @@ -104,7 +104,7 @@ class _MyAppState extends State { 'freeDiskSize': build.freeDiskSize, 'totalDiskSize': build.totalDiskSize, 'systemFeatures': build.systemFeatures, - 'serialNumber': build.serialNumber, + 'serialNumber': build.serialNumber, // ignore: deprecated_member_use 'isLowRamDevice': build.isLowRamDevice, 'physicalRamSize': build.physicalRamSize, 'availableRamSize': build.availableRamSize, diff --git a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart index d01b42541e..4f533e72ae 100644 --- a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart +++ b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart @@ -155,8 +155,10 @@ class AndroidDeviceInfo extends BaseDeviceInfo { /// /// There are special restrictions on this identifier, more info here: /// https://developer.android.com/reference/android/os/Build#getSerial() - @Deprecated('This property is deprecated and will be removed in a future release. ' - 'Currently, it always returns Build.UNKNOWN.') + @Deprecated( + 'This property is deprecated and will be removed in a future release. ' + 'Currently, it always returns Build.UNKNOWN.', + ) final String serialNumber; /// `true` if the application is running on a low-RAM device, `false` otherwise. From 093e92876b30bbc00bf3d02af579f9b1b3018f4b Mon Sep 17 00:00:00 2001 From: StanleyCocos Date: Wed, 10 Sep 2025 09:16:58 +0800 Subject: [PATCH 3/4] refactor: remove serialNumber property --- .../plus/device_info/MethodCallHandlerImpl.kt | 1 - .../integration_test/device_info_plus_test.dart | 2 -- .../device_info_plus/example/lib/main.dart | 1 - .../lib/src/model/android_device_info.dart | 13 ------------- .../test/model/android_device_info_test.dart | 1 - 5 files changed, 18 deletions(-) diff --git a/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt b/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt index 965bc0ad70..2d82b02799 100644 --- a/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt +++ b/packages/device_info_plus/device_info_plus/android/src/main/kotlin/dev/fluttercommunity/plus/device_info/MethodCallHandlerImpl.kt @@ -80,7 +80,6 @@ internal class MethodCallHandlerImpl( build["isLowRamDevice"] = memoryInfo.lowMemory build["physicalRamSize"] = memoryInfo.totalMem / 1048576L // Mb build["availableRamSize"] = memoryInfo.availMem / 1048576L // Mb - build["serialNumber"] = Build.UNKNOWN result.success(build) } else { result.notImplemented() diff --git a/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart b/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart index 5e66e140c9..2b8be67aac 100644 --- a/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart +++ b/packages/device_info_plus/device_info_plus/example/integration_test/device_info_plus_test.dart @@ -109,8 +109,6 @@ void main() { expect(androidInfo.type, isNotNull); expect(androidInfo.isPhysicalDevice, isNotNull); expect(androidInfo.systemFeatures, isNotNull); - expect( - androidInfo.serialNumber, isNotNull); // ignore: deprecated_member_use }, skip: !Platform.isAndroid); testWidgets('Check all macos info values are available', 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 7a3cb214af..38af3f7457 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 @@ -104,7 +104,6 @@ class _MyAppState extends State { 'freeDiskSize': build.freeDiskSize, 'totalDiskSize': build.totalDiskSize, 'systemFeatures': build.systemFeatures, - 'serialNumber': build.serialNumber, // ignore: deprecated_member_use 'isLowRamDevice': build.isLowRamDevice, 'physicalRamSize': build.physicalRamSize, 'availableRamSize': build.availableRamSize, diff --git a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart index 4f533e72ae..cf6270801a 100644 --- a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart +++ b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart @@ -34,7 +34,6 @@ class AndroidDeviceInfo extends BaseDeviceInfo { required this.freeDiskSize, required this.totalDiskSize, required List systemFeatures, - required this.serialNumber, required this.isLowRamDevice, required this.physicalRamSize, required this.availableRamSize, @@ -151,16 +150,6 @@ class AndroidDeviceInfo extends BaseDeviceInfo { /// https://developer.android.com/reference/android/content/pm/PackageManager final List systemFeatures; - /// Hardware serial number of the device, if available - /// - /// There are special restrictions on this identifier, more info here: - /// https://developer.android.com/reference/android/os/Build#getSerial() - @Deprecated( - 'This property is deprecated and will be removed in a future release. ' - 'Currently, it always returns Build.UNKNOWN.', - ) - final String serialNumber; - /// `true` if the application is running on a low-RAM device, `false` otherwise. final bool isLowRamDevice; @@ -203,7 +192,6 @@ class AndroidDeviceInfo extends BaseDeviceInfo { freeDiskSize: map['freeDiskSize'], totalDiskSize: map['totalDiskSize'], systemFeatures: _fromList(map['systemFeatures'] ?? []), - serialNumber: map['serialNumber'], isLowRamDevice: map['isLowRamDevice'], physicalRamSize: map['physicalRamSize'], availableRamSize: map['availableRamSize'], @@ -304,7 +292,6 @@ class AndroidDeviceInfo extends BaseDeviceInfo { freeDiskSize: freeDiskSize, totalDiskSize: totalDiskSize, systemFeatures: _fromList(systemFeatures), - serialNumber: serialNumber, isLowRamDevice: isLowRamDevice, physicalRamSize: physicalRamSize, availableRamSize: availableRamSize, diff --git a/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart b/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart index 88912c883b..c89737b4ff 100644 --- a/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart +++ b/packages/device_info_plus/device_info_plus/test/model/android_device_info_test.dart @@ -41,7 +41,6 @@ void main() { expect(androidDeviceInfo.version.codename, 'codename'); expect(androidDeviceInfo.version.incremental, 'incremental'); expect(androidDeviceInfo.version.securityPatch, 'securityPatch'); - expect(androidDeviceInfo.serialNumber, 'unknown'); expect(androidDeviceInfo.isLowRamDevice, false); expect(androidDeviceInfo.physicalRamSize, 8192); expect(androidDeviceInfo.availableRamSize, 4096); From d5355b429ea20c645f76f6ad91f383890d589d28 Mon Sep 17 00:00:00 2001 From: StanleyCocos Date: Wed, 10 Sep 2025 09:27:53 +0800 Subject: [PATCH 4/4] refactor: remove serialNumber property --- .../device_info_plus/lib/src/model/android_device_info.dart | 2 -- .../device_info_plus/test/model/android_device_info_fake.dart | 1 - 2 files changed, 3 deletions(-) diff --git a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart index cf6270801a..5fae369614 100644 --- a/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart +++ b/packages/device_info_plus/device_info_plus/lib/src/model/android_device_info.dart @@ -224,7 +224,6 @@ class AndroidDeviceInfo extends BaseDeviceInfo { required int freeDiskSize, required int totalDiskSize, required List systemFeatures, - required String serialNumber, required bool isLowRamDevice, required int physicalRamSize, required int availableRamSize, @@ -261,7 +260,6 @@ class AndroidDeviceInfo extends BaseDeviceInfo { 'freeDiskSize': freeDiskSize, 'totalDiskSize': totalDiskSize, 'systemFeatures': systemFeatures, - 'serialNumber': serialNumber, 'isLowRamDevice': isLowRamDevice, 'physicalRamSize': physicalRamSize, 'availableRamSize': availableRamSize, diff --git a/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart b/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart index d274b41195..8564286cb8 100644 --- a/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart +++ b/packages/device_info_plus/device_info_plus/test/model/android_device_info_fake.dart @@ -39,7 +39,6 @@ const _fakeAndroidDeviceInfo = { 'version': _fakeAndroidBuildVersion, 'supported64BitAbis': _fakeSupported64BitAbis, 'supported32BitAbis': _fakeSupported32BitAbis, - 'serialNumber': 'unknown', 'isLowRamDevice': false, 'physicalRamSize': 8192, 'availableRamSize': 4096,