2012年07月24日

spモードメール通知 5800.00

 spモードメール通知 5800.00 をリリースしました。

 GALAXY NEXUS SC-04D を 4.1にアップデートしたら動かなくなった旨、報告がありましたので、その修正です。ついでに、L-01Dでも動くようになったかもしれません。

 以下、修正の技術的な話を書きます。

 SC-04DにてSQLiteのDBファイルを見ると、L-01Dと違い -journal というサフィックスが付いたファイルが生成されます。L-01Dは前に書いた通り、-walと-shmが生成されます。これらがある場合は、このファイルにもパーミッションを与える必要があります。パーミッションが無いと、DBのオープン時に例外が発生してしまいます。

 前回は単にパーミッションを与える操作だけして、失敗しました。その後のDB内容変更を読み取れませんでした。

 今までは動作中はDBを開きっぱなしにする仕様でした。これは処理の軽量化のため、ひいては省消費電力のためでした。(WEBアプリをやっていると、DBのオープンクローズのオーバーヘッドが非常に気になってしまうのです。)

 開きっぱなしが問題なのではと思い、今回からは開いて読んだらすぐ閉じるようにしました。

 ポーリングでの監視はファイルのタイムスタンプを見ており、タイムスタンプが変わった時だけDBの中身を見に行きます。このためアイドル時(メールが来ないとき)の処理時間(すなわちバッテリ消費量)は変わらないです。

 今回の改修で、多くの最新機種に対応できたのではないかと考えております。



posted by tech4u at 00:32| Comment(13) | spモードメール通知 | このブログの読者になる | 更新情報をチェックする

2012年04月08日

spモードメール通知 L-01D対策

 実機が無い中、L-01D対策してみました。動くかどうかわからないので、今回はマーケットにアップせず、ここのみの公開とします。

 spmmNotifier.5400.00.apk

 walとshmは、SQLiteの3.7.0以降で使われるファイルのようです。Androidのバージョンが新しいと(3.0以降だと)、SQLite3.7以降を採用しているようです。また、メーカーによってはAndroid2.3以前であっても独自にSQLite3.7以降を載せているようです。L-01Dはこれにあたります。

 どうもセットで開いているようなので、パーミッションをいじるコードを追加してみました。

 手元にGALAXY NEXUS SC-04Dがあり、4.0なので再現できるかと思ったのですが、何故か-walと-shmが生成されず、テストできませんでした。

 動作報告お待ちしております。

 参考:
 http://www.sqlite.org/draft/wal.html
 http://stackoverflow.com/questions/2421189/version-of-sqlite-used-in-android

posted by tech4u at 20:22| Comment(2) | spモードメール通知 | このブログの読者になる | 更新情報をチェックする

2012年02月21日

不意にサイレント

spモードメール通知アプリで、着信音の設定が不意にサイレントになってしまう報告が2件あります。

この手の問題は対処が難しいです。「この手の」とは、再現しにくいことです。

「こう操作すると→こんなバグが出る。」など、再現手順が明らかであれば、問題点にたどり着きやすいのですが、発生機序が明らかでないバグは、再現手順を見つけるところから調査しなければなりません。

また、自分の使い方が常にマナーモードで、着信音もすべてサイレントで使っているので普段の利用の中では絶対に再現しない現象なのです。

(マナーモードメインの人なので、バイブパターンが充実しています)

とりあえず、SDカード上の着信音を選択している場合で、SDが抜けたときに何かした時が怪しいんじゃないかと思っているのですが、まだ原因の特定には至っていません。

内蔵着信音を選んでいるにもかかわらずサイレントになってしまうケースがあるとしたら、別の視点で調査しなければなりません。

引き続き調査してまいります。

posted by tech4u at 23:33| Comment(0) | spモードメール通知 | このブログの読者になる | 更新情報をチェックする