結経4度目のアラーム部分の作り替えです…
v1.0.2(公開ベータ)までは setAlarmClock() を使ってAndroidのDOZEモードでもアラームが起動するように作っていたのですが、Goole Pixel4(Android-10)の実機テストでアラーム鳴らず、試しにシュミレーター(Pixel3a:Android-9)で強制的にDOZE(IDLE状態)にしてテストしてみたのだけど、結果はやはりアラームが鳴りませんでした。
正確には、setAlarmClock そのものは発火(Receiverが受信)してるんだけど、その後処理で Receiver→Activity→Service でサウンドを鳴らす部分が駆動しませんでした。
ネットで色々漁ってみたのだけど、古い情報しかなくてどうにも解決方が見つからずでした。このあたり誰か知ってたら教えて下さい。
ってことで、初期の実装で使っていた setExactAndAllowWhileIdle() を使ってアラームを発火するようにもう一度調整してみました。
これだとステータスバーにアラームマークが付かないので、そのあたりは自前で用意して実装しました。スクリーンショットの矢印部分です。
まぁ、こちらの方がバッテーリーへの負担が若干少ない気もするし結果オーライです(笑)
いまのところ朝ちゃんと波乗り時間に起こされます。今日の波はダメダメで海には入らずコード書いたりしてますけどね(笑)
現在v1.0.3R10(公開ベータ)でこちらの実装で利用することができます。それ以前のバージョンだとAndroid9以降の機種ではバッテリー駆動でアラームが鳴らないと思います。
Comments