android中的电池状态

问题描述:

我需要制作一个确定电池电量的应用程序,如果它低于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> 

当我注册它编程它的工作原理,但我需要进行注册通过舱单

但我需要通过舱单注册

这是不可能的。 Android会将某些广播(例如ACTION_BATTERY_CHANGED)限制为通过registerReceiver()注册的接收者。

可以登记清单中的ACTION_BATTERY_LOW,这将是一个更有效的方法来找出电池电量低。

+0

好吧,有什么方法可以在ACTION_BATTERY_LOW中获取电池电量吗? – iosamammohamed

+0

@iosamammohamed:在API Level 21+(Android 5.0+)上,使用'BatteryManager'。在较早的版本中,用'null'' BroadcastReceiver'调用'registerReceiver()'作为'ACTION_BATTERY_CHANGED' - 返回值应该是最后一个粘贴的'ACTION_BATTERY_CHANGED'广播,你可以从那里选择额外的东西。 – CommonsWare

+0

好的,谢谢 – iosamammohamed