2017-03-21 155 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 Level 21+(Android 5.0+)上,使用'BatteryManager'。在較早的版本中,用'null'' BroadcastReceiver'調用'registerReceiver()'作爲'ACTION_BATTERY_CHANGED' - 返回值應該是最後一個粘貼的'ACTION_BATTERY_CHANGED'廣播,你可以從那裏選擇額外的東西。 – CommonsWare

+0

好的,謝謝 – iosamammohamed