// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class PlatformChannel extends StatefulWidget { @override _PlatformChannelState createState() => new _PlatformChannelState(); } class _PlatformChannelState extends State { static const PlatformMethodChannel platform = const PlatformMethodChannel('samples.flutter.io/battery'); String _batteryLevel = ''; Future _getBatteryLevel() async { String batteryLevel; try { final int result = await platform.invokeMethod('getBatteryLevel'); batteryLevel = 'Battery level at $result % .'; } on PlatformException catch (e) { batteryLevel = "Failed to get battery level: '${e.message}'."; } setState(() { _batteryLevel = batteryLevel; }); } @override Widget build(BuildContext context) { return new Material( child: new Center( child: new Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ new RaisedButton( child: new Text('Get Battery Level'), onPressed: _getBatteryLevel, ), new Text(_batteryLevel, key: new Key('Battery level label')), ], ), ), ); } } void main() { runApp(new PlatformChannel()); }