RucKyGAMES info

RucKyGAMESです

AndroidアプリでのSDカード対応に苦戦する。

先日、ぐんまのやぼう、にほんのあらそい、とうさんの3つのAndroidアプリをSDカード対応しました。

https://market.android.com/details?id=com.ruckygames.gunmaapps
https://market.android.com/details?id=com.ruckygames.otherjp
https://market.android.com/details?id=com.ruckygames.tousan


SDカード周りについて調べてたら罠が多かったのでメモとして。
SDカード関係ないのもあるけど。


Xperia系の端末は蓋を閉じてないとSDカードを認識してくれない。
SDカードのテストをする関係でSDカードの抜き差しが多くなるわけです。蓋を開けるとSDカード抜き差し出来る端末や、電池パック外さないと出来ない端末もあったりします。
一々蓋を閉じてるとめんどくさいので、蓋を開けっ放しで作業してたのですが、Xperia系は特殊で蓋を閉じないと駄目です。Xperia arcXperia PLAYは少なくともそうでした。めんどくさい!!

・Galaxy系などは仮想SDカードを持っている。
Environment.getExternalStorageDirectory().getPath()
という、SDカードの位置を知れる処理があるのですが、Galaxyなど一部の端末でこれを使用すると仮想SDカードの位置を返してきます。マジで罠。何度やってもセーブされないなーおかしいなーって思ったらちくそう!!
今回はバックアップというか端末移行を前提とした対応だったので仮想SDに保存されてもしょうがない系。

SDカードのパス取得:Environment と System.getenv - 戌印-INUJIRUSHI- (Androidあれこれ) -
SDカードのディレクトリ・パス - コードを貼り付けながら。
この辺を参考に実装しました。ただこれでいけるかは不明。端末によって駄目とかありそうな。

・いちいちスリープ入ってうざい
手持ちの端末が開発者設定でUSB繋いでる間スリープに入らない、という設定が無かったので油断するとスリープ入ってめんどくさかった・・・。
知り合いのアプリでウィジェットに置けてスリープ入らないようにするのがあって、それが便利だったー。
https://play.google.com/store/apps/details?id=com.Ninedrafts.NeverSleep&hl=ja

・Galaxyの色合いがなんかちがう
液晶が違うせいだろうけど改めて見ると違いが怖い。



今回はあくまでもバックアップという方向性なため、まず最初に端末のセーブデータ読みに行って、無かったらSDカード見に行くという対応。これが綺麗な流れなのかは色々考えた。移行の際は若干わかりづらいかもしれないですし。

あとそもそもSDカードが挿せない端末の場合どうしたらいいんだろう。
Androidさんは色んな端末が出過ぎててにっちもさっちもいかんですね。どうしてもその都度対応になってしまいます。