Android 5 では、SD カードを操作するための新しい API が導入されています。SC カードのディレクトリにファイルを書き込みたい場合は、そこにアクセスする必要があります。私の知る限り、次の方法で実行できます。
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, 42);
その後:
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (resultCode == RESULT_OK) {
Uri treeUri = resultData.getData();
getActivity().getContentResolver().takePersistableUriPermission(treeUri,
Intent.FLAG_GRANT_READ_URI_PERMISSION |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
}
このコードはフォルダー ピッカーを起動します。フォルダーが選択されると、Uri によるフォルダーに対するアクセス許可が必要になります。
しかし、パスによって正確なディレクトリのアクセス許可を取得することは可能ですか? フォルダ ピッカーを使用せずに。私は、アクセスしたいディレクトリを知っていることを意味し、ユーザーを混乱させるため、フォルダ ピッカーを起動したくありません。
DocumentFile
ユーザーの操作なしで開くには?