react-native-battery

0.1.18 • Public • Published

react-native-battery

A cross-platform React Native module that returns the battery level/status of a device. Supports iOS and Android.

Package Installation

npm install react-native-battery --save

iOS automatic setup

  • react-native link react-native-battery

Android setup

  • react-native link react-native-battery may work, but it sometimes munges files. If automatic installation fails, use the following manual steps.
  • Add to MainApplication.java:
import com.rctbattery.BatteryManagerPackage;
// ...

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
        new BatteryManagerPackage(),
        // ...
  );
}
  • Add to android/settings.gradle:
include ':react-native-battery'
project(':react-native-battery').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-battery/android')
//...
  • Add to android/app/build.gradle:
dependencies {
  compile project(':react-native-battery')
  //...
}

Example

'use strict';
var React = require('react-native');
var BatteryManager = require('NativeModules').BatteryManager;
var {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  DeviceEventEmitter,
} = React;
 
var RCTBattery = React.createClass({
 
  getInitialState: function() {
    return {batteryLevel: null, charging:false};
  },
 
  onBatteryStatus: function(info){
    this.setState({batteryLevel: info.level});
    this.setState({charging: info.isPlugged});
  },
 
  componentDidMount: function(){
    BatteryManager.updateBatteryLevel(function(info){
      this._subscription = DeviceEventEmitter.addListener('BatteryStatus', this.onBatteryStatus);
      this.setState({batteryLevel: info.level});
      this.setState({charging: info.isPlugged});
    }.bind(this));
  },
 
  componentWillUnmount: function(){
    this._subscription.remove();
  },
 
  render: function() {
    var chargingText;
    if(this.state.charging){
      chargingText =<Text style={styles.instructions}>Charging </Text>;
    } else {
      chargingText =<Text style={styles.instructions}>Not Charging </Text>;
    }
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Battery Level {this.state.batteryLevel}
        </Text>
        {chargingText}
      </View>
    );
  }
});
 
var styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});
 
AppRegistry.registerComponent('RCTBattery', () => RCTBattery);
 

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.18
    269
    • latest

Version History

Package Sidebar

Install

npm i react-native-battery

Weekly Downloads

317

Version

0.1.18

License

none

Unpacked Size

28.8 kB

Total Files

15

Last publish

Collaborators

  • oojr