2017-06-13 59 views
0

我在我的應用程序中有一個整數變量,我想保存以供將來使用。根據它的價值(比如當值爲0時),我將阻止我的應用程序的功能,並且會請求購買相同的應用程序。在android中保護變量

如果我將它保存在內部存儲的任何位置,它將在清除數據後刷新,如果我將它保存在外部存儲中,則可以通過反編譯代碼輕鬆找到文件的路徑,而基於服務器的解決方案超出我的範圍。

我知道一個完整的證明安全幾乎是不可能的,你可能會考慮降低我的問題,但我真的需要像你這樣的專家提供一些建議,這樣我至少可以實現最大的安全性,以便我能夠以某種方式弄清楚變量的值已被篡改,在這種情況下,我會將其重置爲零。

+0

如果是每個用戶,請使用firebase實時數據庫,如果是針對所有用戶,則使用firebase remote config – archLucifer

+0

清除數據將清除所有持久性數據,這是您在與應用程序通信時可以與服務器集成進行通信的唯一一個服務器集成開始並驗證你的條件。 – Pavan

+0

是的,對於不同的用戶來說這個值會有所不同....所以根據你的firebase實時數據庫是最好的選擇權@archLucifer? –

回答

0

我認爲沒有辦法保護變量沒有服務器實現,所以爲了實現您的功能,您可以執行以下步驟。

  • 首先,您需要檢查In App Purchase產品狀態 - 如果它是由用戶購買的,那麼您需要解鎖下一個功能。

  • 如果用戶在購買應用程序時沒有購買或訂閱,那麼您需要鎖定下一個功能。

+0

訂閱和應用內購買API - https://developer.android.com/google/play/developer-api.html#subscriptions_api_overview 這應該有所幫助。 –

0

如果您想保護存儲的數據免遭讀取,可以使用加密在文件中存儲某些內容,然後在您的應用程序中使用它。是的,有人可以找到數據的路徑,但很難讀取它。也不可能修改數據,只會損壞數據。

另一方面,最好使用內部存儲或首選項。是的,實際上應該通過清除應用程序數據來清除數據。如果需要的字段丟失,則應在應用程序的開始處創建默認值並存儲它。如果用戶刪除應用程序\清除數據,則設備上不應有任何內容。