2012年10月16日火曜日

通話履歴 S(Call History Simple) ver.3.1.0

version.3.1.0
 アイコン(着信・発信・不在)部分をクリックすると即発信できるようにしました。
 非通知・公衆電話・通知不可からの不在着信時に呼出時間が表示できるようにしました。
 本体の伝言メモを設定していて、伝言メモが起動した場合に呼出時間が表示できなかったのを表示するようにしました。

呼出音がなる前に切れてしまう場合は、呼出時間を取得できません。ただ、呼出音がなってないだけで、内部では着信されているみたいで履歴には残るみたいです。こまったもんだ・・・

2012年2月19日日曜日

不在着信時の呼出時間

「通話履歴 S」にて、運用している 不在着信の呼出時間ですが、必ず表示できるものではありません。
なぜなら、Android自体が呼出時間を保存していない為それをユーザーアプリで実装しています。
ユーザーアプリはシステムアプリとは違い、いろいろな制限を受けております。

呼出時間を保存するために、バックグランドで着信の状態を監視しておりますが!
このバックグランド処理は、その実行を保証されておりません。Androidのシステムはメモリーを管理して、メモリー不足などが起こりそうな場合、勝手にバックグランド処理を終了させます。
ゲームなどをする人は、気をつけてくださいね。
もちろん、タスクキル系のアプリでキルしてしまうとダメなんで、キルしないようにしてください。(キルからの除外方法は、そのアプリの使用方法をご参照ください)

ユーザーアプリであるが為に、システムと同じタイミングで着信時間等を取得できないので取得に失敗することもあります。

当アプリでは、電源を立ち上げ時及び、アプリ起動時に着信状態監視処理がバックグランドから消去されている場合、再起動するようにしております。

追記)
 呼出音が鳴る前に切れてしまった場合も取得できませんでした。

2012年1月31日火曜日

通話履歴 3D(Call History 3D)

今度のバージョンアップで、通話時間・不在時の呼出時間等、通話履歴Sと同等にします。
少し時間かかると思うけどね。

2012年1月30日月曜日

通話履歴 S(Call History Simple) ver.3.0.0

version 3.0.0
デフォルトに設定できるようにしました。
このアプリで、未確認の不在着信を確認済みにするようにしました。
通知を消去できます(Android2.2まで、2.3以降は通知を消去できません。)
電話帳の名前が変更されていたら、通話履歴のデータベースを変更するようにしました。

内部の処理方法を大幅に変更しました。

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以降の人はデフォルトに設定しないほうがいいかも・・・

2012年1月9日月曜日

通話履歴 S(Call History Simple) ver.2.1.2

version 2.1.2
ListViewでのNullPointerエラーの原因がわからないので、いろいろ試しております。
自分の実機では、まったくそのエラーがでないので どうすればいいのやら・・・

ググってみると adapterをカスタマイズしてgetViewをオーバーライドすればいいってなってるけど、もともとそうしてるし><
今回したのは、getView内のStringがNullの場合処理です。
通話履歴で名前と番号がStringなんだけど、普通で考えると両方Nullはありえない。
が!!!、もしかしたらあるかもしれんと・・・最近 通話無料になるアプリあるし・・・

たぶん、考え方の方向を間違ってるんだろうな 俺・・・

2012年1月6日金曜日

通話履歴 S(Call History Simple) ver.2.1.1

version 2.1.1
 フリック操作でのタブ切替をした場合の画面移行にアニメーションを追加。
 アイテムクリック・ロングクリック時のダイアログにキャンセルボタンを追加。
 強制終了していると思われる箇所を対策。(試験運用)