AndroidネイティブアプリからSDカードへファイルを保存する

test104_01.png
今回はAndroidネイティブアプリからSDカードへファイルを読み書きしてみる。
前回紹介したEasyProjectGenerator for Android Ver 1.00を利用してAndroidプロジェクトを生成、Eclipseに取り込む。

test104_02.png そしてjniフォルダにあるネイティブソースコードにファイル関連処理を入れる。ソースコードを編集したら忘れずにファイル保存する。
#include <string.h>
#include <jni.h>
#include <stdio.h>

jstring
Java_com_Test104_Test104Act_stringFromJNI(JNIEnv* env,jobject thiz)
{
	char*	pszRet;
	char	pszBuff[256];
	FILE	*fp;

	/* file WRITE */
	fp = fopen("/sdcard/test.txt","w");
	if(fp)
	{
		fputs("Test line.",fp);
		fclose(fp);
	}

	pszBuff[0] = NULL;
	pszRet = NULL;

	/* file READ */
	fp = fopen("/sdcard/test.txt","r");
	if(fp)
	{
		pszRet = fgets(pszBuff,256,fp);
		fclose(fp);
	}

	if(pszRet)
	    return (*env)->NewStringUTF(env, pszBuff);
	else
	    return (*env)->NewStringUTF(env, "Error.");
}

test104_03.png
そしてプロジェクトフォルダ内にあるバッチファイルを利用してネイティブコードをビルドする。

test104_04.png
ネイティブのビルドが終わったら、Eclipse上から実行する。

test104_05.png
これでAndroidエミュレーター上でエラーが表示されず、実行が確認できた。

test104_06.png Eclipseの「DDMS」画面の「File Explorer」見ると、実際にファイルが保存されていた。
本来であればAndroidManifest.xmlにandroid. permission. WRITE_EXTERNAL_STORAGEを設定する必要があると思うのだがなくても動作するようだ。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>



プロジェクトファイルをダウンロード


カテゴリー「android」 のエントリー