2017-06-13 58 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

如果您想保护存储的数据免遭读取,可以使用加密在文件中存储某些内容,然后在您的应用程序中使用它。是的,有人可以找到数据的路径,但很难读取它。也不可能修改数据,只会损坏数据。

另一方面,最好使用内部存储或首选项。是的,实际上应该通过清除应用程序数据来清除数据。如果需要的字段丢失,则应在应用程序的开始处创建默认值并存储它。如果用户删除应用程序\清除数据,则设备上不应有任何内容。