提问人:pwhited-7 提问时间:12/6/2022 更新时间:12/6/2022 访问量:39
如何从Android设备中检索不同类型的外部文件?
How do I retrieve different types of external files from android device?
问:
我一直在到处寻找如何从外部存储中检索文件并能够读取它。我希望能够做的是,当我打开android应用程序时,会有一个按钮,按下该按钮时,我可以进入我的手机文件并选择CSV文件。我不想得到一个预先选择的文件,我希望每次都能选择不同的文件。有了这个文件,我只想能够从中读取或将其下载到内部存储。我对android IO不是很熟悉,所以希望这是有道理的。
这是我到目前为止的代码,它获取了一个预选文件(仅使用预选文件作为示例)并尝试读取该文件。到目前为止,它失败并打印出 Exception 块代码。
public class MainActivity extends AppCompatActivity {
private String filename = "/storage/emulated/0/Download/example.csv";
Scanner sc = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE},
PackageManager.PERMISSION_GRANTED);
}
public void buttonOpenFile(View view){
Context context = getApplicationContext();
File appSpecificExternalDir = new File(context.getExternalFilesDir(null), filename);
try {
Scanner sc = new Scanner(appSpecificExternalDir);
sc.useDelimiter(",");
while (sc.hasNext()){
System.out.println(sc.next());
}
}catch (Exception e){
System.out.println("File not valid");
}
}
}
答: 暂无答案
评论
ACTION_OPEN_DOCUMENT
ActivityResultContracts.OpenDocument