2016-07-06 56 views
1

1)问题混乱外置存储在机器人

我用的installLocation清单中

android:installLocation="preferExternal" 

纠正我,如果我错了。 android:installLocation =“preferExternal”让你的应用安装在外部SD卡上。如果这是真的,那么当SD卡被移除时,我应该无法使用myapplication。但是,无论我可以使用所有MyApplication甚至当我从我的设备

2)问取出SD卡

就是我的设备上sdcard0和extsdcard之间的区别? 甚至当我在用我的清单

android:installLocation="preferExternal" 

所有的应用程序文件存储在sdcard0和它甚至,当我在我的设备已经SD卡访问。我用下面的方法在SD卡上存储文件

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 

那么在哪种情况下我的文件将存储在我的SD卡? 以及如何将文件存储在extsdcard上?

+0

这可能适合你http://stackoverflow.com/a/31758403/5296734希望为最好 –

回答

1

1)由于在文档中指出:

如果声明“preferExternal”,您要求您的应用程序安装在外接存储 ,但系统不保证 你的申请将被安装在外部存储器上。

卸载外部存储意味着所有正在运行的应用程序将立即死亡。如果您仍然可以使用您的应用程序,我会看到2个可能的原因:系统决定将您的应用程序安装在内部存储器上,或者您的设备还具有仿真“外部”存储器,并且您的应用程序已安装在那里。

2)

就是我的设备上sdcard0和extsdcard的区别

这是常见的sdcard0指的是设备内部存储,同时extsdcard指可能是物理外部存储或仿效。但有没有可靠的命名约定,这取决于供应商。

另请注意,“外部”的Android基本上意味着“用户可以访问的存储”。
一些进一步的措施,这可能有助于:

  • 使用ADB壳牌检查设备的存储结构,具有SD卡安装和拆卸

  • 验证您的应用从“应用程序”设置菜单中的安装位置由Environment类的不同的方法提供的目录的

  • 登录绝对路径

注意:一般来说,你不应该依赖于你的应用程序的安装位置的假设,因为这可能会让你在某些设备上遇到麻烦

+0

哪些条件文件将存储在extsdcard?因为无论何时使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),它都会将所有文件存储在sdcard0中; – FaisalAhmed

+0

你使用那个目录是为了什么?你在下载一些文件吗?另外,请记录下载目录的绝对路径('Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()') – Droidman

+0

不,我没有下载任何东西。我只是将图像文件存储到实践中。我的问题是我怎样才能将我的文件存储在extsdcard上,或者在什么情况下它会将我的映像存储到extsdcard中,因为我的映像文件存放在sdcard0 – FaisalAhmed