2011年12月20日火曜日

不在着信時の呼出時間表示

不在着信時の呼出時間を表示しようかと、悪戦苦闘しております。(すでに、あきらめモードですが・・・

発着信の履歴ってのはandroidが標準でもってるデータベースがあります。

ほとんどの通話履歴のアプリは、このデータベースを使用してると思います。

しかしながら、このデータベースには呼出時間は保存されておりません。(通話時間は保存されてます)

なので、呼出時間を表示させるには独自に保存しなければなりません。

となると、呼出を検地して通話の判別をし不在着信の場合、その時間を取得するプログラムが必要になります。
もちろん、常時監視しないとだめなんでサービスでの実装となります。

簡単そうですね・・・これだけの処理なら簡単です。

PhoneStateListenerという便利なクラスがあり、電話機の状態が変化すると呼び出されるからね。

上記だけの判断なら
 CALLING-OFFHOOK-IDLE 通話
 CALLING-IDLE          不在

これは、単独で電話がかかってきた時だけですね。

実はエミュレターでシュミレーションを行うと、単独通話、グループ通話、割込み通話ができるんです。

実機でも、グループはできそうにないけど割込み通話はできますよね。

まあ、ここらはいろいろやってみるとどうなるかはわかるかな・・・

あと、実機では終話ボタンの挙動が各メーカーによって違いそうです。

終話ボタンで切った場合、不在にするかどうかもメーカーによって違うみたい。

次に、andoroidの通話履歴データベースの着信時間とこちらが作成したアプリでの着信時間にずれが生じます。

まあ、当たり前なんですけど めんどくさいです。

時間のずれは、エミュレーターだと 10ms以内でしたが 実機だと 100msをかるく越えることが・・・

これは、たぶんスマフォの処理速度で変わって来るでしょ・・・




なんだかんだと、いろいろめんどくさいんです><

できるだけ、取得できるようにしてみたんですが今テスト中です。

とりあえず、バグで強制終了とかがなければ 近いうちにバージョンアップさせます。

0 件のコメント:

コメントを投稿