2

アプリケーションでファイル チューザーを使用してファイルをロードする必要があります。私はそれを実装するためにいくつかのモジュールを試しましたが、奇妙なことに、キットカットのルート化された電話とルート化されていない以前のバージョンはストレージ内のディレクトリとファイルを読み取ることができますが、ルート化されていないキットカットのバージョンではストレージ内の何も読み取ることができません.

ここに私が試したいくつかのモジュールと私が使用したコードがあります:

Android ファイル チューザー

Intent intent = new Intent(this, FileChooser.class);
ArrayList<String> extensions = new ArrayList<>();
extensions.add(".csv");
intent.putStringArrayListExtra("filterFileExtension", extensions);
startActivityForResult(intent, 0);`

aFileDialog

Intent intent = new Intent(this, FileChooserActivity.class);
intent.putExtra(FileChooserActivity.INPUT_START_FOLDER, Environment.getExternalStorageDirectory());
intent.putExtra(FileChooserActivity.INPUT_REGEX_FILTER, ".*csv|.*CSV");
this.startActivityForResult(intent, 0);

また、 AndroidManifest 内で使用したアクセス許可は次のとおりです

<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="18" />
<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"
    android:maxSdkVersion="18" />

エラーは見つかりませんでした。ストレージにアクセスしたときのみ、何も表示されませんが、ルート ディレクトリにアクセスすると、すべての電話で正常に見えます。

Android の最近のバージョンをサポートするこれまたはより良いライブラリ/モジュールを修正する方法はありますか?

解決策の編集: Ish のおかげで、属性 android:maxSdkVersion により、アプリケーションが問題を引き起こす可能性があります。その属性を使用しないでください。コードは大丈夫です

4

0 に答える 0