2016-07-06 74 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