2012-06-06 33 views
4

我需要在我的應用程序中有試用期(7天)。從this我開始知道,你可以通過保持永久文件,數據庫或共享首選項適用於Trail期間的最佳地點/區域存儲文件

我該在哪裏保存該文件,以便用戶無法看到/刪除它

如果我將該邏輯放入Sharedpreference或路徑爲「data/data/packagename」的文件中,則在卸載應用程序時,所有歷史記錄都將丟失。

任何其他解決方法/想法?

注意:沒有服務器,應用程序在本地工作,沒有Internet。

+0

[我可以在Android設備上存儲數據以便在安裝之間保留?](http://stackoverflow.com/questions/7107673/can-i-store-data-on-an-android-device-在持續安裝之間) – Krishnabhadra

+0

我不認爲在android中存在可靠的選項來存儲跨安裝的數據(如果您不使用網絡)。 – Krishnabhadra

回答

0

您可以保存爲隱藏,從而沒有機會通過用戶

刪除看到this

+4

您可以在路由設備上運行bash終端,並從那裏用戶可以查看和刪除隱藏文件 – Krishnabhadra

1

我想說一個更好的解決辦法是加密您的文件,然後將其存儲在隨機的地方。這樣,即使用戶有權訪問該文件,他/她也不太可能說出它的用途並將其刪除。而且Android也非常支持加密。

有一起來看看這些讓你開始:

Android Crypto Implementation

Android Developer: Crypto Package Summary

0

我會說,讓無法從清單這樣被清除應用程序的數據:

android:manageSpaceActivity="YourStartingActivity" 

in application tag。

現在將應用程序放置在數據庫或應用程序文件夾中。該解決方案可以幫助您避免清理應用程序數據現在卸載問題。製作一個廣播接收器,當任何應用程序從設備上卸載時觸發。一旦用戶嘗試卸載你的應用程序,你可以通過接收器來捕獲它並阻止它。這個廣播接收器可以在一個獨立的類中,像Watcher類,它將隨你的應用程序一起安裝。 你可以很容易地做到這一點。有很多例子。

+0

我的擔心是您正在防止卸載違反用戶意願的應用程序。因此,採用這種方法,您可能會將用戶疏遠到更廣泛的應用程序和品牌。重要的是不允許用戶在超過病毒期限後使用應用程序,但防止卸載不是一個好的選擇。 – Orlymee

+0

然後我會建議你保存你的應用程序安裝的設備的記錄。在開始時檢查你的服務器到期,甚至一個csv記錄設備ID與安裝日期。但顯然你需要互聯網連接才能這樣做。 –