diff --git a/packages/battery/battery_platform_interface/CHANGELOG.md b/packages/battery/battery_platform_interface/CHANGELOG.md
index 09ac38c..6fc7228 100644
--- a/packages/battery/battery_platform_interface/CHANGELOG.md
+++ b/packages/battery/battery_platform_interface/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.0-nullsafety
+
+* Migrate to null safety.
+
 ## 1.0.1
 
 - Update Flutter SDK constraint.
diff --git a/packages/battery/battery_platform_interface/lib/method_channel/method_channel_battery.dart b/packages/battery/battery_platform_interface/lib/method_channel/method_channel_battery.dart
index 4a3365c..739812d 100644
--- a/packages/battery/battery_platform_interface/lib/method_channel/method_channel_battery.dart
+++ b/packages/battery/battery_platform_interface/lib/method_channel/method_channel_battery.dart
@@ -11,11 +11,11 @@
 class MethodChannelBattery extends BatteryPlatform {
   /// The method channel used to interact with the native platform.
   @visibleForTesting
-  MethodChannel channel = MethodChannel('plugins.flutter.io/battery');
+  final MethodChannel channel = MethodChannel('plugins.flutter.io/battery');
 
   /// The event channel used to interact with the native platform.
   @visibleForTesting
-  EventChannel eventChannel = EventChannel('plugins.flutter.io/charging');
+  final EventChannel eventChannel = EventChannel('plugins.flutter.io/charging');
 
   /// Method channel for getting battery level.
   Future<int> batteryLevel() async {
@@ -23,7 +23,7 @@
   }
 
   /// Stream variable for storing battery state.
-  Stream<BatteryState> _onBatteryStateChanged;
+  Stream<BatteryState>? _onBatteryStateChanged;
 
   /// Event channel for getting battery change state.
   Stream<BatteryState> onBatteryStateChanged() {
@@ -32,7 +32,8 @@
           .receiveBroadcastStream()
           .map((dynamic event) => _parseBatteryState(event));
     }
-    return _onBatteryStateChanged;
+
+    return _onBatteryStateChanged!;
   }
 }
 
diff --git a/packages/battery/battery_platform_interface/pubspec.yaml b/packages/battery/battery_platform_interface/pubspec.yaml
index e88ef37..c7c4f5e 100644
--- a/packages/battery/battery_platform_interface/pubspec.yaml
+++ b/packages/battery/battery_platform_interface/pubspec.yaml
@@ -3,20 +3,20 @@
 homepage: https://github.com/flutter/plugins/tree/master/packages/battery
 # NOTE: We strongly prefer non-breaking changes, even at the expense of a
 # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 1.0.1
+version: 2.0.0-nullsafety
 
 dependencies:
   flutter:
     sdk: flutter
-  meta: ^1.1.8
-  plugin_platform_interface: ^1.0.2
+  meta: ^1.3.0-nullsafety
+  plugin_platform_interface: ^1.1.0-nullsafety.1
 
 dev_dependencies:
   flutter_test:
     sdk: flutter
-  mockito: ^4.1.1
-  pedantic: ^1.8.0
+  mockito: ^5.0.0-nullsafety.0
+  pedantic: ^1.10.0-nullsafety
 
 environment:
-  sdk: ">=2.7.0 <3.0.0"
+  sdk: ">=2.12.0-0 <3.0.0"
   flutter: ">=1.9.1+hotfix.4"
diff --git a/packages/battery/battery_platform_interface/test/method_channel_battery_test.dart b/packages/battery/battery_platform_interface/test/method_channel_battery_test.dart
index 65323e4..2b17cf9 100644
--- a/packages/battery/battery_platform_interface/test/method_channel_battery_test.dart
+++ b/packages/battery/battery_platform_interface/test/method_channel_battery_test.dart
@@ -12,8 +12,8 @@
 void main() {
   TestWidgetsFlutterBinding.ensureInitialized();
 
-  group("$MethodChannelBattery", () {
-    MethodChannelBattery methodChannelBattery;
+  group('$MethodChannelBattery', () {
+    late MethodChannelBattery methodChannelBattery;
 
     setUp(() async {
       methodChannelBattery = MethodChannelBattery();
@@ -32,7 +32,7 @@
           .setMockMethodCallHandler((MethodCall methodCall) async {
         switch (methodCall.method) {
           case 'listen':
-            await ServicesBinding.instance.defaultBinaryMessenger
+            await ServicesBinding.instance!.defaultBinaryMessenger
                 .handlePlatformMessage(
               methodChannelBattery.eventChannel.name,
               methodChannelBattery.eventChannel.codec
@@ -48,13 +48,13 @@
     });
 
     /// Test for batetry level call.
-    test("getBatteryLevel", () async {
+    test('getBatteryLevel', () async {
       final int result = await methodChannelBattery.batteryLevel();
       expect(result, 90);
     });
 
     /// Test for battery changed state call.
-    test("onBatteryChanged", () async {
+    test('onBatteryChanged', () async {
       final BatteryState result =
           await methodChannelBattery.onBatteryStateChanged().first;
       expect(result, BatteryState.full);
diff --git a/script/nnbd_plugins.sh b/script/nnbd_plugins.sh
index 0cab28a..7bc5ac3 100644
--- a/script/nnbd_plugins.sh
+++ b/script/nnbd_plugins.sh
@@ -6,6 +6,7 @@
 
 readonly NNBD_PLUGINS_LIST=(
   "android_intent"
+  "battery"
   "connectivity"
   "device_info"
   "flutter_plugin_android_lifecycle"
