100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android调用文件管理打开某个路径 android – 在文件管理器中打开特定文件夹以供查看...

android调用文件管理打开某个路径 android – 在文件管理器中打开特定文件夹以供查看...

时间:2021-09-25 13:15:22

相关推荐

android调用文件管理打开某个路径 android  – 在文件管理器中打开特定文件夹以供查看...

我为用户下载了一个文件,现在我想将用户导航到下载文件的特定文件夹.我搜索了很多,这是我能想到的最好的

public static void openASpecificFolderInFileManager(Context context, String path) {

Intent i = new Intent(Intent.ACTION_VIEW);

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

i.setDataAndType(Uri.parse(path), "resource/folder");

if (i.resolveActivityInfo(context.getPackageManager(), 0) != null) {

context.startActivity(Intent.createChooser(i, "Open with"));

} else {

Toast.makeText(context, "File Manager not found ", Toast.LENGTH_SHORT).show();

}

}

这适用于特定的文件浏览器(如ES filemanager),但不适用于默认的android文件管理器.

注意:我不想选择文件.我只想打开特定文件夹,以便用户可以查看文件

有什么方法可以使用默认文件浏览器实现它吗?

解决方法:

测试此项以打开包含文本文件的文件夹,例如:

public class fillEditText extends Activity {

final int REQUEST_CODE=1;//your code for onActivityResult

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()

+ "/YourValidFolder/");

intent.setDataAndType(uri, "text/plain");

if (intent.resolveActivity(getPackageManager()) != null)

startActivityForResult(Intent.createChooser(intent, getString("Select your file")), REQUEST_CODE);

}

...}

选择文件后的结果:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == REQUEST_CODE) {

if (resultCode == RESULT_OK) {

Uri selectedfile_uri = data.getData();

try {

String text = readTextFromUri(selectedfile_uri);

if (!text.isEmpty()) {

editText.setText(text);

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

private String readTextFromUri(Uri uri) throws IOException {

InputStream inputStream = getContentResolver().openInputStream(uri);

BufferedReader reader = new BufferedReader(new InputStreamReader(

inputStream));

StringBuilder stringBuilder = new StringBuilder();

String line;

while ((line = reader.readLine()) != null) {

stringBuilder.append(line);

}

inputStream.close();

return stringBuilder.toString();

}

标签:android,file-manager

来源: https://codeday.me/bug/0710/1426169.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。