2015-04-08 2 views
-1

Я разрабатываю приложение, в котором я хочу попасть в службу, когда питание устройства включено, и остановите службу, когда питание устройства выключено. Может ли кто-нибудь сказать мне, как определить состояние устройства (включено или выключено)?Как узнать питание устройства в orroid?

+3

Подсказка: если ваш код работает, питание. Если он выключен, ваш код не работает. –

+0

да всякий раз, когда на моем коде работает питание, всякий раз, когда отключается мой код, не запускается – user3110855

+0

, вы не можете добиться этого без каких-либо сервисов ... BroadcastReciever получает экран вкл-выкл (android.intent.action.SCREEN_ON и android.intent .action.SCREEN_OFF) .. но вы должны зарегистрировать приемщика в любом сервисе или деятельности .... –

ответ

0

По android documentation вы можете определить BroadcastRecevier как этот

public class PowerConnectionReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
     boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || 
          status == BatteryManager.BATTERY_STATUS_FULL; 

     int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); 
     boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; 
     boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; 
     //Start/stop your service here 
     if(isCharging) { 
      context.startService(...); 
     } else { 
      context.stopService(...); 
     } 
    } 
} 

и объявить его в AndroidManifest.xml

<receiver android:name=".PowerConnectionReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> 
    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> 
    </intent-filter> 
</receiver> 
+0

Это относится к зарядному устройству и не относится к вопросу о (бессмысленном) вопросе. –