Java を使用して SD カードから単純なテキスト ファイルを読み込もうとしていますが、開くことができないようです。Ubuntu 12.04 で Eclipse for Mobile Developers を使用しています。onCreate()
メイン アクティビティのメソッド内のコードは次のとおりです。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String status = "Hello, is it me you're looking for?";
String storageState = Environment.getExternalStorageState();
File dir = Environment.getExternalStorageDirectory();
File f = new File(dir, "textTest.txt");
if (f.exists()) {
status = "File is found!";
} else {
status = "File is not found!";
}
this.text1 = (TextView) findViewById(R.id.textView1);
text1.setText(status.subSequence(0, status.length()));
}
また、ここに私が試したいくつかのコンストラクターがありますがFile f
、どれも機能しませんでした:
File f = new File(dir, "textTest.txt");
File f = new File("/sdcard/textTest.txt");
File f = new File(dir, "mnt/sdcard/textTest.txt");
最後に、上記の文字列を使用して外部ストレージの状態を確認したstorageState
ところ、返された値Environment.getExternalStorageState()
はmounted
. 私が持っている唯一の手がかりは、SDカードが読み取れるかどうかに関係があるのではないかと思いますが、それは単なる推測です. 何か案は?
追加:
ご存じないかもしれませんが、アクティビティを起動すると、TextView
オブジェクトに「ファイルが見つかりません! 」と表示されます。
追加 2:
わかりました。うまくいったことを試してみました。USB経由で電話を接続すると、電話に関連する2つのフォルダーが開きます.1つは内部ストレージ(データ、DCIMなど)のすべてのフォルダーを含み、1つはSDカードに接続されていると想定するフォルダーです。ラップトップ カード リーダーからファイルを追加し、電話に入力しました。ただし、ファイル「testText.txt」を最初のフォルダー(内部ストレージに関連していると想定)にコピーすると、コンストラクターFile f = new File("/sdcard/textTest.txt");
が機能します。どうして?