2012-03-09 11 views
1

私は、Battery_Status_Full(バッテリーが100%充電されている)/充電が切断されたときのどちらか早い方で、時刻をdbで更新する必要があるアプリを開発中です。BroadcastReceiverを介してACTION_BATTERY_CHANGEDを​​受け取った後、BatteryManager.Battery_Status_Fullを知っている

バッテリー切断イベントを取得し、そのイベントに基づいてデータベースを更新することができますが、デバイスがまだ充電中であり、サービス内でオンチャージしている間、onCreateで私はbroadcastReceiverをIntentFilter(Intent .ACTION_BATTERY_CHANGED)、100%のバッテリー充電が完了したかどうかを確認するために5分ごとに繰り返しイベントを起こそうとすると、100%のイベントを受信しないと思われます。 また、私のAlarmManagerでは、100%のバッテリー充電をチェックするサービスは、1回だけ起動され、繰り返しは実行されません。

ご案内しています。私はほとんど私のアプリで終わっているが、この小さなバグは私を夢中にさせている。 おかげ Omkar Ghaisas

----詳細は---- マイアプリのアーキテクチャは、以下のように

  1. BroadcastReceiver(ACTION_POWER_CONNECTEDとACTION_POWERDISCONNECTEDために登録)です。いずれの場合も、DBトランザクションを処理するために個別のサービスを開始します。電源ことがADDと呼ばれる追加情報とインテントを設定し、切断のために、それは更新でそれを設定する接続

  2. サービスが開始されると、そののonCreateで、それはIntentFilter ACTION_BATTERY_CHANGED および内ヌルbroadcastreceiverに渡すことによって受信機を登録

    onStartCommand、インテントのAddフラグの場合、新しいエントリがdbに保存されます。 更新フラグの場合 - 以前の更新DBエントリが作成されていない場合のみ、データベースを更新します。

  3. 上記のAdd/Updateロジック(If-Else)の下にsetRepeatingを持つAlarmManagerがあります

  4. 私は、新しいサービスの中で、戦闘レベルが100%に達したかどうかを確認すると、そこにデータベースを更新すると思います。

  5. バッテリーが100%に達しておらず、Battery_Dicsonnectedが起動している場合、上記のUpdateブロック内では、その時のバッテリーレベルに関係なく、dbは更新されます。

疑問/懸念 -

  • しかし、問題はalarmmanagerから呼び出されたばかりの新しいサービスは、一度だけ呼び出さ/開始された、ということです。
  • ここでは、このアラームマネージャをどこで最初のサービスに配置しますか?
  • 2番目のサービスは、バッテリの残量が常に100%に達していることを常に確認していますか?

Plsガイド。それが必要な場合は、コードを投稿することができます。 ありがとう オムカー

+1

バッテリーが完全な状態に達していない可能性があり、充電器がその前に充電を停止すると判断する(99%など)ことがあります。あなたは 'ACTION_BATTERY_CHANGED'を取得したときにバッテリーレベルをチェックし、レベルが99%のときにバッテリーをフルにしておくことができます。繰り返しイベントについては、http://developer.android.com/reference/android/app/AlarmManager.html – zapl

+0

私のオリジナルのクエリに詳細を追加しました。基本的な問題が何であるかを理解するのに役立つかもしれません。私は確信しています、初心者である、私はどこかに行っている必要がありますが、私は確信していません –

+0

"nullのbroadcastreceiverで渡す"は、ACTION_BATTERY_CHANGEDを​​受信できる受信者がないことを意味ですか? – zapl

答えて

-1

私はこれを最終的に考え出しました。アラームマネージャの私の位置は間違っていた。私はそれを修正し、100%バッテリー残量に達したかどうかをチェックするためだけに不必要な2番目のサービスを削除しました。最終的にはすべてが期待どおりに働いています。 :-)うわー私は期待通りに動作する私の最初のアンドロイドアプリでとても嬉しいと感じています。 すべての助けをありがとう。 Omkar

+0

私も同じ問題に直面しています。バッテリーが完全に充電されたトリガーの仕方を助けることができます私の場合、私は常にモバイルで100%を見つけますが、フル充電イベントを引き起こすことはありません。 – Panache

関連する問題