AIR for AndroidでSDカードにデータを読み書きするサンプル

2011.09.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AIR for AndroidでSDカードにファイルアクセスするサンプルを作ってみました。 テキストエリアの文字列を読み書きするだけの簡単なものです。

ポイントはFile.userDirectoryでSDカードのルートディレクトリを取得できることです。 それ以外はデスクトップのAIRと同じです。

あとSDカードに読み書きするための権限が必要なのでADFファイル内の android.permission.WRITE_EXTERNAL_STORAGE をコメントアウトしておく必要があります。

以下がソースです。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark">
	<fx:Script>
		<![CDATA[
			
			private function read():void {
				var file:File = File.userDirectory.resolvePath("sample.txt");
				var fileStream:FileStream = new FileStream();
				fileStream.open(file, FileMode.READ);
				textInput.text = fileStream.readMultiByte(file.size, File.systemCharset);
				fileStream.close();
			}
			
			private function write():void {
				var file:File = File.userDirectory.resolvePath("sample.txt");
				var fileStream:FileStream = new FileStream();
				fileStream.open(file, FileMode.WRITE);
				fileStream.writeMultiByte(textInput.text, File.systemCharset);
				fileStream.close();
			}
			
		]]>
	</fx:Script>
	
	<s:VGroup width="100%" height="100%">
		<s:TextArea id="textInput" width="100%" height="100%"/>
		<s:HGroup width="100%">
			<s:Button width="100%" label="READ" click="read()"/>
			<s:Button width="100%" label="WRITE" click="write()"/>
		</s:HGroup>
	</s:VGroup>
</s:Application>