Menampilkan Status Baterai di Aplikasi Android Menggunakan Android Studio


header image android studio stabil

* Artikel ini adalah rangkaian dari tutorial Android Studio, untuk melihat tutorial Android Studio lainnya bisa mengklik tautan ini

Pada tulisan kali ini, saya akan membuat aplikasi sederhana yang memberikan informasi mengenai status baterai pada ponsel pintar Android. Aplikasi ini akan menampilan persentase dari sisa baterai atau status baterai pada saat tertentu. Untuk melakukan fungsi ini, ada kaitannya dengan Android Broadcast Receiver.

Android Broadcast Receiver adalah sebuah komponen Android yang berfungsi untuk melakukan broadcast dari aplikasi lain atau dari sistem itu sendiri. Pesan yang di broadcast disebut event atau intent. Aplikasi melakukan broadcast untuk memberi tahu aplikasi lainnya bahwa beberapa data telah di unduh ke perangkat yang tersedia, kemudian penerima broadcast atau receiver akan menerima pesan untuk melakukan transfer informasi.

Sebagai contoh, ketika sebuah SMS tiba, atau panggilan masuk, atau baterai hampir habis, atau sistem akan boot, semua event yang di broadcast dan sejumlah receiver bisa dipicu olehnya. Di bawah ini merupakan tampilan aplikasi sederhana untuk melihat status baterai.

aplikasi-batre-sederhana-android

Silahkan buat proyek baru pada Android Studio dengan nama IndikatorBaterai, atau berikan nama sesuai keinginan. Buka Android Studio, klik File – New Project isi Application Name dengan nama IndikatorBaterai dan Company Domain dengan teknojurnal.com. Pada jendela Activity silahkan pilih Empty Activity.

Setelah itu, silahkan buka file activity_main.xml yang terdapat pada direktori res/layout/activity_main.xml. Pada layout ini kita akan menambahkan TextView dan ProgressBar yang akan menampilkan persentase dari baterai pada perangkat Android. Silahkan buka activity_main.xml dan tambahkan kodingan seperti di bawah ini.

<?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="oc.startup.ra.indikatorbatre.MainActivity">

    <TextView
        android:id="@+id/textfield"
        android:layout_marginTop="40dip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"/>
    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dip"
        android:layout_gravity="center"
        android:minWidth="200dip"
        android:minHeight="100dip"
        android:max="100"
        style="?android:attr/progressBarStyleHorizontal"/>
</RelativeLayout>

Setelah mengatur layout, silahkan buka MainActivity.java yang terdapat pada direktori java/MainActivity.java. Pada file ini kita akan membuat broadcast receiver dengan class yang didefinisikan. Selain itu kita akan menampilkan status baterai dengan % (persen) dan mengatur teks pada TextView.

Setelah membuka MainActivity.java, silahkan tambahkan kodingan seperti di bawah ini.

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends Activity {
    //Create Broadcast Receiver Object along with class definition
    private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
        @Override
        //When Event is published, onReceive method is called
        public void onReceive(Context c, Intent i) {
            //Get Battery %
            int level = i.getIntExtra("level", 0);
            //Find the progressbar creating in main.xml
            ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar);
            //Set progress level with battery % value
            pb.setProgress(level);
            //Find textview control created in main.xml
            TextView tv = (TextView) findViewById(R.id.textfield);
            //Set TextView with text
            tv.setText("Status Batre: " + Integer.toString(level) + "%");
        }

    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Set layout we created
        setContentView(R.layout.activity_main);
        //Register the receiver which triggers event
        //when battery charge is changed
        registerReceiver(mBatInfoReceiver, new IntentFilter(
                Intent.ACTION_BATTERY_CHANGED));
    }
}

Setelah mengikuti tahapan seperti di atas, silahkan jalankan aplikasi yang sudah dibuat. menggunakan emulator Android (AVD) atau langsung dijalankan pada perangkat Android yang dimiliki. Bagi yang ingin ditanyakan bisa menulisnya pada kolom komentar.

Untuk mengunduh kode sumber aplikasi IndikatorBaterai dapat mengklik tautan ini.

* Artikel ini adalah rangkaian dari tutorial Android Studio, untuk melihat tutorial Android Studio lainnya bisa mengklik tautan ini