Tech Racho エンジニアの「?」を「!」に。
  • 開発

AndroidのパーミッションWRITE_EXTERNAL_STORAGE

MusicFlyなどの弊社Androidアプリで、SDカードを使うようには見えないのに

ストレージ:SDカードのコンテンツを修正・削除する

のパーミッションが付与されていて、不安に思う方がいらっしゃったようです。

技術的な話ですが、該当のWRITE_EXTERNAL_STORAGEは、API Level 4(Android 1.6)以上で追加されたもので、Android 1.5の時には、パーミッション無しでSDカードに書き込めました。

Androidでは後方互換性のために、TargetをAndroid 1.5にしたアプリを1.6以上で動かすと、自動的にWRITE_EXTERNAL_STORAGEパーミッションが付与される、というようになっています。

これが、やたら多くのアプリが「ストレージ」パーミッションを要求する理由ですね。実際には書き込みしていないです。

ちなみに、MusicFlyでそれぞれのパーミッションの利用方法は以下の通りです。
READ_PHONE_STATE : 着信時に音楽を停止する機能で利用
KILL_BACKGROUND_PROCESSES、RESTART_PACKAGES : メニューから「終了」を実施するために利用

KILL_BACKGROUND_PROCESSESは、自分だけを終了したいのに範囲が広すぎますね。
Froyo以上対応にすればもう少しましな解決ができるんでしょうけど・・・。悩ましいです。

※MusicFlyではXperia miniなどのQVGA端末に対応するため、Targetを1.6にしつつ1.5でも動作するように調整しています。
そのため、次期バージョンでは、「ストレージ」パーミッションが消えているかもしれません。MusicFly2.3をお楽しみに!

CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。