2017-03-21 14 views
0

バッテリーのレベルを決定するアプリケーションを作成する必要があります.15%未満であれば何かを作っています。バッテリーの状態がアンドロイド

これは私の放送されている:

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」を使用してください。古いバージョンでは、 '' BroadcastReceiver'で 'ACTION_BATTERY_CHANGED'の' registerReceiver() 'を呼び出します。戻り値は最後のスティッキーな' ACTION_BATTERY_CHANGED'放送でなければなりません。 – CommonsWare

+0

大丈夫、ありがとう – iosamammohamed

関連する問題