Home »
Android
How to know Charging mode in Android?
In this article, we are going to learn about charging modes in Android and then find the current charging mode of device.
Submitted by Manu Jemini, on January 30, 2018
Here, first we learn the method to use BatteryManager and check the current charging status of battery. In the example below, we are going to use the os.BatteryManager class to have all the functionality required for BatteryManager.
To implement this in your program you will need to import: android.os.BatteryManager in your java file. Now on your XML File we need a button for testing the charging mode. For this just add button like this:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click and check the charging mode"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="150dp"
android:onClick="check"/>
Now this button have a onClick attribute which is referring to a function called check, this function is implemented in JAVA file with corresponding logics to check the current charging mode and use the Toast class to make a Text.
Now in the java class we will get the status of the battery charging from the line below: BatteryManager.BATTERY_PLUGGED_AC;
This will return a Boolean which we will check and if it’s true we will know that this is the current status.
1) Java file:
package com.example.hp.myapplication;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b=(Button)findViewById(R.id.button);
}
public void check(View v){
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(null, ifilter);
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
if(usbCharge){
Toast.makeText(getApplicationContext(),"Device charging through USB",Toast.LENGTH_LONG).show();
}else if(acCharge)
{
Toast.makeText(getApplicationContext(),"Device charging through AC",Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(),"Device not charging",Toast.LENGTH_LONG).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
2) XML file:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.hp.myapplication.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click and check the charging mode"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="150dp"
android:onClick="check"/>
</RelativeLayout>
3) Menifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.myapplication">
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Output images