アプリケーションでファイル チューザーを使用してファイルをロードする必要があります。私はそれを実装するためにいくつかのモジュールを試しましたが、奇妙なことに、キットカットのルート化された電話とルート化されていない以前のバージョンはストレージ内のディレクトリとファイルを読み取ることができますが、ルート化されていないキットカットのバージョンではストレージ内の何も読み取ることができません.
ここに私が試したいくつかのモジュールと私が使用したコードがあります:
Intent intent = new Intent(this, FileChooser.class);
ArrayList<String> extensions = new ArrayList<>();
extensions.add(".csv");
intent.putStringArrayListExtra("filterFileExtension", extensions);
startActivityForResult(intent, 0);`
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 により、アプリケーションが問題を引き起こす可能性があります。その属性を使用しないでください。コードは大丈夫です