Android,如何选择保存文件位置?

12

有没有解决方案可以选择保存文件的位置?也许可以使用原始文件浏览器选择目标位置吗?

谢谢!


你想使用你的应用程序保存文件吗? - Maxim
是的,它可以录制视频,并在停止按钮(也许在之前)后选择保存位置。 - David
我认为你应该查看此页面上的内部/外部存储:http://developer.android.com/guide/topics/data/data-storage.html - Vince
可能是选择文件对话框的重复问题。 - mmmmmm
3个回答

9

3
最好使用您的应用程序命名空间来保存文件:
String extStorage = Environment.getExternalStorageState();
path = extStorage+"/Android/data/com.mydomain.myapp/";

当应用程序被卸载时,它将被删除。

这里实际上涉及到数据存储的所有内容。
http://developer.android.com/guide/topics/data/data-storage.html

从上面的链接中可以得知:

If you're using API Level 7 or lower, use getExternalStorageDirectory(), to open a File representing the root of the external storage. You should then write your data in the following directory:

/Android/data/<package_name>/files/

我知道如何保存它,它可以工作(mediaRecorder.setOutputFile("/sdcard/Festivale.mp4");),但是想要选择目录。 - David

0

最简单和预期的做法可能是将其保存到外部SD卡上的专用区域。

您可以通过调用来获取此文件夹

file://localhost/Applications/android-sdk-macosx/docs/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)

File path = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES)

您还可以添加子文件夹以更好地引用源,例如您的应用程序。

您可以选择DIRECTORY_PICTURES或DIRECTORY_MOVIES。如果是用户创建的,则可能最好选择图片目录。

为了更加方便,您还可以调用媒体扫描器将其添加到适当的内容提供程序中,以实现系统范围内的共享。

sendBroadcast( new Intent(Intent.ACTION_MEDIA_MOUNTED, 
                    Uri.parse("file://" + Environment.getExternalStorageDirectory()))
        );

如果你一定要使用文件选择器,虽然这不是推荐的方法来让用户接触文件系统,那么可以尝试使用Open Intents提供的文件选择器表单。http://www.openintents.org/en/node/164


好的,所以没有办法制作类似于保存文件对话框之类的东西。 - David
编辑,添加对开放意图文件选择器的引用。虽然这将提示用户下载文件选择器,但上次我接触它时非常流畅。http://www.openintents.org/en/node/164 - Pork 'n' Bunny
还有更多的Environment常量 - 例如Environment.DIRECTORY_DOWNLOADS - naXa stands with Ukraine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接