2011-04-11 49 views
9

我有一個Android應用程序,可以在幾個文件中存儲大約25-40K的私人應用程序數據。系統默認將這些文件存儲在目錄/ data/data /'我的應用程序包'/文件中。當用戶轉到「設置 - >應用程序 - >管理應用程序 - >'我的應用程序包'」並選擇「清除數據」選項時,該應用程序的所有文件,數據庫文件夾都將被刪除。我需要將數據保存在設備上,直到應用程序「卸載」。Android - 通過「清除數據」設置選項來防止應用程序數據或文件被刪除

有沒有辦法讓我的應用程序數據「在設備上」不被刪除?我的設備沒有植根。我的應用程序並不意味着在根植設備上。

注意:我看到/ data/data /'我的應用包'/ lib目錄沒有使用「清除數據」選項被刪除。但是我無法以編程方式寫入這個直接問題。我被拒絕了權限。有沒有辦法使用這個目錄來存儲我的數據?有沒有辦法使用NDK(尚未開發)來保證數據安全?有沒有一種方法可以將數據保存在應用程序資源中,或者像Windows程序中的DLL資源那樣。

任何幫助,請讓我擺脫這種果醬?

+0

使用NDK不會讓您過去在Java代碼中遇到的任何寫入權限問題。 – 2011-04-11 15:59:24

+0

您希望保留哪種類型的數據?我希望任何清除數據的用戶都希望數據丟失。一個可能的解決方案是將一些數據保存在cacheDir中(請參閱http://developer.android.com/reference/android/content/Context.html#getCacheDir%28%29),因爲這是單獨清除的。將數據存儲在SD卡上也是可行的。 – 2011-04-11 16:03:47

+0

非常感謝你們所有人的建議。我試着保留一些簡單的企業安全文本數據。當然它們會被加密。cahce dir似乎也不安全; doc說它會在低內存中被刪除。 SD卡可以被用戶移除並且可能不會長時間放回。將數據保存在服務器上;問題是由於停止服務,超出範圍等原因,設備可能無法長時間與服務器保持聯繫。 – user702426 2011-04-12 03:02:14

回答

2

當用戶進入「設置 - >應用程序 - >管理應用程序 - >‘我的應用程序包’」,並選擇「清除數據」選項,所有的文件,數據庫文件夾爲這個應用程序被刪除。我需要將數據保存在設備上,直到應用程序「卸載」。

這是不可能出於安全原因,請參閱this的問題。

7

對我來說,以下工作:android:manageSpaceActivity=".ActivityOfMyChoice"

的則不用"Clear Data",對於"Manage Space"一個按鈕,啓動ActivityOfMyChoice

它的工作對我的應用程序,我看到它的工作在海豚瀏覽器(這是是什麼促使我找到這個信息)。

我正在使用股票2.2(Froyo)的Samsung Captivate(AT & T Galaxy S)。我不知道一些設備是否可以同時顯示。

某些設備可能仍然顯示兩個,或者可能只是不顯示在所有

1

空間管理添加

機器人:allowClearUserData = 「假」

到manifiest的應用標籤 它會更改按鈕清除數據管理空間

相關問題