我正在为Android创建一个简单的应用程序,让用户从内部存储中选择一个文本文件并将其上传到服务器上。
以下是我在按钮点击时用于初始化文件选择器的代码:
private static final int LOAD_FILE_RESULT = 100;
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button1:
try {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setType("text/plain");
startActivityForResult(intent, LOAD_FILE_RESULT);
} catch (Exception e) {
e.printStackTrace();
}}}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case LOAD_FILE_RESULT:
if (resultCode == RESULT_OK) {
// Code to get the URI of the selected file goes here
}
}
}
当我在Nexus 5X仿真器(API 25)上进行测试时,一切正常。然而, 当我在物理三星Galaxy S3上进行测试时,当我按下按钮时它只显示登录Dropbox的窗口,没有从存储中选择文件的选项。为什么会这样?
我是否需要为较旧的API实现单独的文件选择器?