내 앱의 경우 내 앱이 닫힌 경우에도 배터리 잔량을 모니터링 한 다음 배터리가 일정 비율 미만으로 떨어지면 알림을 보내려고합니다. this과 같은 백그라운드 서비스를 만드는 방법을 알고 있지만 배터리 수준을 모니터링하는 방법을 사용하는 방법을 모르겠습니다. Manifest 파일에 BroadcastReceiver를 등록할까요, 아니면 동적으로해야합니까? 또한 BroadcastReceiver가 최초 업데이트를받은 후 OS에 의해 종료 될 것이라는 우려가 있습니다.Android 백그라운드에서 배터리 잔량을 모니터링하는 방법은 무엇입니까?
답변
동적으로 등록해야합니다.
서비스에서 그렇게하는 것이 좋은 방법 일 것입니다.
this.registerReceiver(this.mBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
을 ...
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
// TODO Auto-generated method stub
//this will give you battery current status
try{
int level = intent.getIntExtra("level", 0);
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
String BStatus = "No Data";
if (status == BatteryManager.BATTERY_STATUS_CHARGING){BStatus = "Charging";}
if (status == BatteryManager.BATTERY_STATUS_DISCHARGING){BStatus = "Discharging";}
if (status == BatteryManager.BATTERY_STATUS_FULL){BStatus = "Full";}
if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING){BStatus = "Not Charging";}
if (status == BatteryManager.BATTERY_STATUS_UNKNOWN){BStatus = "Unknown";}
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
String BattPowerSource = "No Data";
if (chargePlug == BatteryManager.BATTERY_PLUGGED_AC){BattPowerSource = "AC";}
if (chargePlug == BatteryManager.BATTERY_PLUGGED_USB){BattPowerSource = "USB";}
String BattLevel = String.valueOf(level);
int BHealth = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);
String BatteryHealth = "No Data";
if (BHealth == BatteryManager.BATTERY_HEALTH_COLD){BatteryHealth = "Cold";}
if (BHealth == BatteryManager.BATTERY_HEALTH_DEAD){BatteryHealth = "Dead";}
if (BHealth == BatteryManager.BATTERY_HEALTH_GOOD){BatteryHealth = "Good";}
if (BHealth == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE){BatteryHealth = "Over-Voltage";}
if (BHealth == BatteryManager.BATTERY_HEALTH_OVERHEAT){BatteryHealth = "Overheat";}
if (BHealth == BatteryManager.BATTERY_HEALTH_UNKNOWN){BatteryHealth = "Unknown";}
if (BHealth == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE){BatteryHealth = "Unspecified Failure";}
//Do whatever with the data here
} catch (Exception e){
Log.v(TAG, "Battery Info Error");
}
}
};
왜 나는 그것을 동적으로해야만하는지 알고 있습니까? –
http://developer.android.com/reference/android/os/BatteryManager.html - "명시 적으로 Context.registerReceiver()를 사용하여 등록한 경우에만 매니페스트에 선언 된 구성 요소를 통해이를 수신 할 수 없습니다 (ACTION_BATTERY_LOW 참조). , ACTION_BATTERY_OKAY, ACTION_POWER_CONNECTED 및 ACTION_POWER_DISCONNECTED가 있습니다. –
이 코드는 앱을 시작할 때 한 번만 실행됩니다. 계속 실행하려면 ... 필요합니다. 하기 위해서? – Aradhna
- 1. 배터리 잔량을 측정 하시겠습니까?
- 2. 안드로이드 폰의 배터리 잔량을 모니터
- 3. 안드로이드 전화에서 배터리 잔량을 얻으십시오.
- 4. BLE 장치에 연결 한 후 배터리 잔량을 얻는 방법은 무엇입니까?
- 5. 활동 당 Android 앱의 배터리 사용을 모니터링하는 방법은 무엇입니까?
- 6. Galaxy Nexus Phone에서 배터리 잔량을 설정하는 방법
- 7. 리눅스 셸에서 배터리 잔량을 확인하는 명령을 추가하는 방법은 무엇입니까?
- 8. Android 개발 : 현재 배터리 잔량을 기준으로 예상 배터리 수명을 예측하려면 어떻게해야하나요?
- 9. iOS에서 백그라운드에서 위치를 모니터링하는 방법은 무엇입니까?
- 10. iOS 연결된 블루투스 기기의 배터리 잔량을 알려면
- 11. 안드로이드에서 특정 시점의 배터리 잔량을 계산하는 방법
- 12. ios7에서 올바른 배터리 잔량을 얻는 방법이 있습니까?
- 13. 배터리 잔량을 표시하는 영구 알림을 만드는 방법
- 14. Android 개발 : 배터리 수준 표시
- 15. 잠금 화면이 작동하지 않을 때 현재 배터리 잔량을 저장하십시오.
- 16. 백그라운드에서 실행할 때 통화 상태를 모니터링하는 방법은 무엇입니까?
- 17. Android 액세스 배터리 통계 또는 매니페스트를 통해 배터리 수준 모니터링
- 18. Android 앱 배터리 사용량
- 19. android 정확한 배터리 잔량이 변경 되셨습니까?
- 20. Android 앱 : 배터리 사용량 감소
- 21. iOS 응용 프로그램의 백그라운드 배터리 상태 확인
- 22. 백그라운드에서 실행중인 Android 서비스
- 23. Android 활동을 모니터링하는 Android 서비스
- 24. SQLite 성능을 모니터링하는 방법은 무엇입니까?
- 25. 리소스 사용률을 모니터링하는 방법은 무엇입니까?
- 26. PHP 변수를 모니터링하는 방법은 무엇입니까?
- 27. (마이크로) 서비스를 모니터링하는 방법은 무엇입니까?
- 28. 화면 업데이트를 모니터링하는 방법은 무엇입니까?
- 29. 루비 프로세스를 모니터링하는 방법은 무엇입니까?
- 30. 데이터베이스 트랜잭션을 모니터링하는 방법은 무엇입니까?
http://stackoverflow.com/questions/24532934/checking-battery-level-in-the-background-with- : 이것은 내가 사용했던 것입니다 a-service 걷는 음식의 해결책을보십시오 – Kriptite