1

I want to detect is anything like charger or USB is connected to the charger port of a device.Is there anyway to achieve this?

I tried this link .It works when charger connected and disconnected.Is it works in all devices?

Thanks in Advance

Community
  • 1
  • 1
Asha Soman
  • 1,846
  • 1
  • 18
  • 28
  • I asking you that is it works for charger and usb connection?In some higher version devices there are options for charging and usb even though using same port. – Asha Soman Jul 03 '13 at 06:03
  • See this from the answer below: `plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB` - you can return this either way, there are separate flags for USB and AC charging. – g00dy Jul 03 '13 at 06:07

1 Answers1

1

Yes, you can monitor battery status via intent broadcasts.

Example of a battery monitor:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;

public class ChargeMon extends BroadcastReceiver {
    private boolean mCharging;
    private boolean mUsb;
    private boolean mAC;

    public void start(Context c) {
        c.registerReceiver(this, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    }

    public void stop(Context c) {
        c.unregisterReceiver(this);
    }

    public boolean isCharging() {
        return mCharging;
    }

    public boolean isUsb() {
        return mUsb;
    }

    public boolean isAC() {
        return mAC;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        if(Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())){
            int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,-1);

            mCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
                       status == BatteryManager.BATTERY_STATUS_FULL;

            int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);

            mUsb = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
            mAC = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
        }
    }
}
S.D.
  • 29,290
  • 3
  • 79
  • 130
  • I hope this won't work when battery is full. – Asha Soman Jul 03 '13 at 06:32
  • @AshaSoman It all depends on whether an intent is broadcast: http://developer.android.com/training/monitoring-device-state/battery-monitoring.html You can add more intent filters to monitor. – S.D. Jul 03 '13 at 06:36