2012年1月26日木曜日

標準の通話履歴

今更ながら、androidのデフォルト通話履歴アプリのコードを見てみた。

理解不能な箇所がいっぱい><勉強不足ですね・・・

まあ、非公式なクラスを使ったりしてるんで 余計にわかりません。

が!わかったこともあります。

コールログデータベースの書き直し
 ログデータの電話番号から電話帳を検索
 名前・ラベル・電話種別のどれかが 電話帳データと違っていたら コールログデータベースを電話帳のデータに書き直す。CACHED_NAMEとCACHED_NAMBER_TYPEとCACHED_NUMBER_LABELですね・・・そう、CACHEDと付いてる意味がそうゆうことなのね。

データベースのクエリーをAsyncQueryHandlerを使ってた。非同期のバックグランド処理ですね。

Viewが表示されたら、未確認の不在着信を確認済みにしてた。

通知領域の不在通知を消去してた。非公開のクラスだった・・・

ということで、ただいま私のアプリも 同じことができるように改造中です。

通知領域の不在通知を消すのは、リフレクションでできるんですが・・・これをするには、MODIFY_PHONE_STATEが必要みたいです。このパーミッションAndroid2.3以降はユーザーアプリでは 使えなくなったので、不在通知を消すことができません。
それに・・・Aindroid2.3からは、通知を消去するボタンで未確認を確認済みにもしてくれません。困ったもんです!

今度のバージョンアップでデフォルトに設定できるようにするんですが、上記理由により未確認を確認済みにするには、通話履歴を見てその後通知を消去するで 消去という2度手間になります。
なんで、2.3以降の人はデフォルトに設定しないほうがいいかも・・・

0 件のコメント:

コメントを投稿