アラーム的なもの


もしかして Audio Unit は iOS 関連のこともあるし、もう少し経ったら有益なドキュメントが増えるんじゃないかしらという淡い期待を抱きつつ、塩漬けしてみるテスト。

その間に Kindle さん向けに、アラーム的なものを作ってみようと思いついたので、ここ数日取り掛かっていた。

基本的には以下の感じ。

1) MainActivity でタイマーをセット 設定終了したらこのアクティビティはバックグラウンドに移動(画面を消す)
2) BroadcastReceiver で、セットした時間になったら着信音を鳴らす新たなActivity(=画面=AlarmActivity)を起動
3) AlarmActivity 上のボタンを押すと、終了処理の新たな画面(=finishActivity)を起動
4) finishActivity 上のボタンを押すと、全アクティビティを終了

って感じで考えてたんだけど、1と2の間のアプリの画面がなくなっているときに、スクリーン・ロックしちゃうと、AlarmActivityが前面に出てこなくて困る。

一応、BroadcastReceiver の onReceive で、

Intent i = new Intent(context, AlarmActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);



とやって、AlarmActivity の onCreate で、

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);



とかはやってるんだけど。

Wakelock とか KeyguardLock とかが使えれば上手くいくんじゃろかー。
いやー、使うなって言われてるんだから、今それを考えても無駄だなぁ。

一応、Manifest にも

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />



入れてるんだけどなぁ。
さて、どうやったら回避できるんじゃろーかね。


あ、Kindle さんでも、

Uri uri = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE);
mRingtone = RingtoneManager.getRingtone(getApplicationContext(), uri);
mRingtone.play();



とやると、着信音が鳴るのでした。


スポンサーサイト

コメント

非公開コメント