2017-03-21 13 views
0

배터리 수준을 결정하는 애플리케이션을 만들어야합니다. 15 % 미만인 경우 무언가를 만들 것입니다.배터리 상태가 android

public class BatteryChecker extends BroadcastReceiver { 



@Override 
public void onReceive(Context context, Intent intent) { 


    int level = intent.getIntExtra("level", 0); 


     Toast.makeText(context,"Battery : "+level+"%",Toast.LENGTH_LONG).show(); 


     } 
} 

하지만 난 매니페스트에 수신기를 등록 할 때 내가 그것을 작동하는 프로그램을 등록,하지만 난 그것을 등록 할 때

<receiver android:name=".BatteryChecker"> 

     <intent-filter> 
      <action android:name="android.intent.action.BATTERY_CHANGED"></action> 
     </intent-filter> 

    </receiver> 

작동하지 않습니다

내 방송 매니페스트를 통해

답변

1

하지만 매니페스트를 통해 등록해야합니다.

그건 불가능합니다. Android는 ACTION_BATTERY_CHANGED과 같은 특정 방송을 registerReceiver()을 통해 등록 된 수신자로 제한합니다.

ACTION_BATTERY_LOW에 대한 등록은 배터리가 부족할 때를 찾는 훨씬 더 효율적인 방법입니다.

+0

괜찮습니까? ACTION_BATTERY_LOW에서 배터리 잔량을 확인할 수있는 방법이 있습니까? – iosamammohamed

+0

@iosamammohamed : API 레벨 21 이상 (Android 5.0 이상)에서 'BatteryManager'를 사용하십시오. 이전 버전에서는'null ','BroadcastReceiver'로'ACTION_BATTERY_CHANGED'에 대해'registerReceiver()'를 호출합니다 - 반환 값은 마지막으로 끈적 끈적한'ACTION_BATTERY_CHANGED' 방송이어야하며 그곳에서 엑스트라를 선택할 수 있습니다. – CommonsWare

+0

좋습니다, 감사합니다. – iosamammohamed