-2

I want to receive the battery info to a text type and the value of "level" is not accessible outside the broadcast receiver. How to access the value of level out side the broadcast receiver in the code to use it in oncreate method

    public BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context ctxt, Intent intent) {
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
        batteryTxt.setText(String.valueOf(level) + "");


    }
};
dan983
  • 454
  • 2
  • 5
  • 19
  • 1
    possible duplicate of [Get battery level only once using Android SDK](http://stackoverflow.com/questions/15746709/get-battery-level-only-once-using-android-sdk) – Bidhan Jun 01 '15 at 13:00
  • possible duplicate of [Get battery level and state in Android](http://stackoverflow.com/questions/3291655/get-battery-level-and-state-in-android) – Amsheer Jun 01 '15 at 13:04

2 Answers2

0

As stated in Get battery level only once using Android SDK You can use the following code:

 Intent batteryIntent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
 int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
Community
  • 1
  • 1
Kartheek
  • 7,104
  • 3
  • 30
  • 44
0

Use this in your oncreate method:

Declare your textview in oncreate

this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

And implement receiver within that activity

private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
                    @Override
                    public void onReceive(Context ctxt, Intent intent) {
                      int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
                      Log.e("ebre", level+"**");
            batteryTxt.setText(String.valueOf(level) + "");
                    }
                  };

EDIT

Wherever you want to activate receiver just used this to call the receiver

this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

If you want the battery percentage then declare it in the activity and use the value.

Amsheer
  • 7,046
  • 8
  • 47
  • 81