地味だけど重要な変更

久々にSmartTrainingのバージョンアップ(6.6.0)を行いました。
今回のバージョンでは、地味だけど重要な変更を加えています。
----
◇ Ver.6.6.0 変更内容

・使用するパーミッションとライブラリの変更。
・Android 2.1以降でサービスをフォアグラウンドに設定
・Android 2.1以降で端末のGoogleアカウントと連動
・Android 2.1以降で過去に端末内に保存したGoogleパスワードの削除

----

・使用するパーミッションとライブラリの変更。
最近、Androidに対する情報セキュリティがいろいろとうるさくなってきました。アプリケーションが持つパーミッションに対する意識も高くなり、ただの万歩計なのになんでそんなパーミッションが必要なの?とコメントをいただくこともでてきました。このアプリケーションは元々私自身がAndroidアプリ作成と公開を通じて様々な知見を得ることが目的で作り始めたものでした。そのため、通常の利用者が必要としないいくつかの機能を含んでいます。ここのところ実験的に取り入れた機能のために与えたパーミッションが増えてきたので、一度整理してみました。合わせて、使用しているパーミッションとその使用目的をAndroid Market上に公開しました。
----
このアプリケーションが使用する各パーミッションが必要な理由は以下の通りです。
・データをGoogleサービスにアップロードする際に端末内のGoogleアカウント設定を使用するために必要としています。
android.permission.USE_CREDENTIALS
android.permission.GET_ACCOUNTS
android.permission.AUTHENTICATE_ACCOUNTS
・画面テーマ変更時に自アプリケーションのリセットのために必要としています。
android.permission.KILL_BACKGROUND_PROCESSES
・GPSによる位置情報を取得するために必要としています。
android.permission.ACCESS_FINE_LOCATION
・広告モジュールが動作するために必要としています。
android.permission.ACCESS_NETWORK_STATE
・データの送信および、広告モジュールが動作するために必要としています。
android.permission.INTERNET
・定期通知のために必要としています。
android.permission.VIBRATE
・画面OFF時にCPUがスリープしないようにするために必要としています。
android.permission.WAKE_LOCK
・バックアップデータをSDカードに出力するために必要としています。
android.permission.WRITE_EXTERNAL_STORAGE
・ANTデバイスを制御するために必要としています。ANTデバイスをサポートする端末でのみ有効です。
com.dsi.ant.permission.ANT_ADMIN
com.dsi.ant.permission.ANT
----



・Android 2.1以降でサービスをフォアグラウンドに設定
これまで、計測中に動作するサービスはService.setForeground()を使用していました。これって、APILevel4までしか有効じゃなかったんです。Level5以降はService.startForeground()なるものが用意されていましたが、Reflectionを使わないと1apkで複数のバージョンに対応できなかったので、面倒臭がって対応していませんでした。今回、Reflectionを使ってService.startForeground()に対応しました。やり方はここに書いてある通り。これで、画面がバックグラウンドにまわったら落ちやすい、とかいう現象が解消されるのではないかと期待しています。期待しているだけで、絶対大丈夫とは言いませんし、自分の場合、落ちやすい現象を再現できないので気休めだと思っています。

・Android 2.1以降で端末のGoogleアカウントと連動
APILevel5以降で使用可能になったAccountManager対応をしました。AccountManagerを利用することで、ユーザは以下のメリットを受けることが出来ます。
・アカウントとパスワードをこのアプリケーションのためだけに再入力が不要になる。
・このアプリケーションがアカウントとパスワード情報をどこかに送信しているのではないかという不安を解消できる。

ちなみにLevel4以前ではAccountManagerが利用できないので既存の動作と同じです。両方のバージョンに対応するのは面倒なので、早くLevel4以前の端末には爆発して欲しいです。っていうかもう対応しちゃったんでどうでもいいです。

・Android 2.1以降で過去に端末内に保存したGoogleパスワードの削除
もうこのアプリケーションでは保存する必要がなくなったので自動的に消します。



あと、どこにも記載していませんが、こっそりminSDKVersionを3から4に変更しました。さようならLevel3。たぶん、影響を受けるユーザのほとんどはHTC myTouch3Gかと思われます。でも、大丈夫。最近のAndroid MarketはマルチAPK機能をサポートしているのでLevel3の端末からでも旧バージョンのSmartTrainingはインストールできるはずです。マルチAPKマンセー。

コメント

このブログの人気の投稿

Joinノードを使う(その1)

Execノードを使う

Joinノードを使う(その4)