今更ながら、androidのデフォルト通話履歴アプリのコードを見てみた。
理解不能な箇所がいっぱい><勉強不足ですね・・・
まあ、非公式なクラスを使ったりしてるんで 余計にわかりません。
が!わかったこともあります。
コールログデータベースの書き直し
ログデータの電話番号から電話帳を検索
名前・ラベル・電話種別のどれかが 電話帳データと違っていたら コールログデータベースを電話帳のデータに書き直す。CACHED_NAMEとCACHED_NAMBER_TYPEとCACHED_NUMBER_LABELですね・・・そう、CACHEDと付いてる意味がそうゆうことなのね。
データベースのクエリーをAsyncQueryHandlerを使ってた。非同期のバックグランド処理ですね。
Viewが表示されたら、未確認の不在着信を確認済みにしてた。
通知領域の不在通知を消去してた。非公開のクラスだった・・・
ということで、ただいま私のアプリも 同じことができるように改造中です。
通知領域の不在通知を消すのは、リフレクションでできるんですが・・・これをするには、MODIFY_PHONE_STATEが必要みたいです。このパーミッションAndroid2.3以降はユーザーアプリでは 使えなくなったので、不在通知を消すことができません。
それに・・・Aindroid2.3からは、通知を消去するボタンで未確認を確認済みにもしてくれません。困ったもんです!
今度のバージョンアップでデフォルトに設定できるようにするんですが、上記理由により未確認を確認済みにするには、通話履歴を見てその後通知を消去するで 消去という2度手間になります。
なんで、2.3以降の人はデフォルトに設定しないほうがいいかも・・・
0 件のコメント:
コメントを投稿