3

私の Android アプリでは、ファイルを作成し、それにいくつかのテスト テキストを書き込みます。

File externalPath = getExternalFilesDir(null);
File importPath = new File(externalPath, "pd-import");
if(!importPath.exists()) {
    Log.d(this.getClass().getSimpleName(), "Create import dir: " + importPath.getAbsolutePath());
    importPath.mkdirs();
}

File readme = new File(importPath, "README.txt");
try {
    FileWriter fw = new FileWriter(readme);
    fw.write("This is a test");
    fw.flush();
    fw.close();
} catch (IOException e) {
    e.printStackTrace();
}

これにより、 B1 File Managerなどの Android ファイル ブラウザーで承認できるファイルが書き込まれます。HOME/Android/data/JAVA_PACKAGE_NAME/files/pd-import/README.txtに書き込まれます フォルダ付きのスクリーンショット

D/ MainActivity ﹕ Create import dir: /storage/emulated/0/Android/data/JAVA_PACKAGE_NAME/files/pd-import

コードをテストしたNexusをUSB経由でUbuntuラップトップに接続すると、NEXUS 5/Interner Speicher/Android/data/ALL_THE_OTHER_JAVA_PACKAGE_NAMEsなどの他のすべてのアプリケーションデータディレクトリが表示されます(「Interner Speicher」は内部メモリの略です) . しかし、私のアプリがリストされていないため、フォルダーはリストされていません。

フォルダなしのスクリーンショット

MTP 接続を介してフォルダーを一覧表示するには、追加の medatdata/information/whatever を設定する必要がありますか? アニーの提案はありますか?

4

1 に答える 1

1

デバイスの再起動時にディレクトリが表示されますか? はいの場合、このバグが原因だと思います: https://code.google.com/p/android/issues/detail?id=38282

USB 大容量ストレージの代わりに MTP を使用しているすべての電話機は、電話機が USB ケーブルを使用してコンピュータに接続されている場合、ファイルのリストを正しく表示しません。デバイスで実行されている Android アプリも、これらのファイルを表示できません。

これは、Java API を使用して作成されたファイルに影響しますが、C API を使用して作成されたファイルには影響しないようです。

解決策は、デバイスを再起動することです。

解決していないようです。

于 2015-01-22T11:33:50.810 に答える