我使用以下代码允许用户从 Samsung Android 设备访问“我的文件”。当用户按下按钮时,我试图在我的文件中打开特定路径。现在它将打开默认路径。你能告诉我从Android打开我的文件时是否可以通过路径吗?下面是我使用的代码。你能给我将我的文件打开到特定路径的代码吗?预先感谢您的帮助。
public void AccessingFiles(View view) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
// special intent for Samsung file manager
Intent sIntent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
// if you want any file type, you can skip next line
sIntent.putExtra("CONTENT_TYPE", "*/*");
sIntent.addCategory(Intent.CATEGORY_DEFAULT);
Intent chooserIntent;
if (getPackageManager().resolveActivity(sIntent, 0) != null){
// it is device with samsung file manager
chooserIntent = Intent.createChooser(sIntent, "Open file");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { intent});
}
else {
chooserIntent = Intent.createChooser(intent, "Open file");
}
try {
startActivityForResult(chooserIntent, CHOOSE_FILE_REQUESTCODE);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(getApplicationContext(), "No suitable File Manager was found.", Toast.LENGTH_SHORT).show();
}
}
最佳答案
对于寻找同一问题的解决方案的任何人,这就是我打开指向特定路径的“我的文件”的方式:
File folder = new File(""); // construct the path
Intent fmIntent = new Intent(Intent.ACTION_MAIN);
fmIntent.setComponent(new ComponentName("com.sec.android.app.myfiles", "com.sec.android.app.myfiles.MainActivity"));
fmIntent.setData(Uri.parse(folder.toString()));
请注意,fmIntent.setData(Uri.fromFile(folder))
对我不起作用。
该解决方案已使用 My Files 1.19.0 进行测试,这就是我得出的结果:
- 我创建了一个自定义启动器;
- 我的文件可以创建指向特定路径的主屏幕快捷方式;
- 当安装快捷方式 Intent 发送到我的启动器时,我转储了它的内容,以便我可以使用它们从上面的代码 fragment 创建我的 fmIntent。
关于android - 如何以编程方式打开 Samsung Android 我的文件中的特定路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28349132/