【发布时间】:2012-03-29 05:40:05
【问题描述】:
我想要我的应用程序经过五次计算。 即使用5次。 用它屏蔽五次后,会显示购买PRO版的信息
我的应用程序我是如何计算,计算和使用按钮的,我想我可以计算按下计算按钮的次数,只是不知道5次后如何锁定。
谁帮帮我,谢谢
【问题讨论】:
我想要我的应用程序经过五次计算。 即使用5次。 用它屏蔽五次后,会显示购买PRO版的信息
我的应用程序我是如何计算,计算和使用按钮的,我想我可以计算按下计算按钮的次数,只是不知道5次后如何锁定。
谁帮帮我,谢谢
【问题讨论】:
创建一个类来跟踪您的应用加载并将它们保存在SharePreferences中
public static Boolean app_launched(Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("loadCounter", 0);
SharedPreferences.Editor editor = prefs.edit();
// Increment launch counter
long launch_count = prefs.getLong("launch_count", 0) + 1;
editor.putLong("launch_count", launch_count);
editor.commit();
if(launch_count > 5)
return false;
return true;
}
在 Start Activity 的 onCreate 中调用该函数。
【讨论】:
Settings -> Applications -> Manage applications -> The APP -> Clear data 清除应用程序数据,首选项不会被删除,用户可以再次使用该应用程序吗?
这里的关键是有人可以随时获取您的应用程序,对其进行反编译,然后对其进行更改以绕过计数,或者只需弄清楚您如何存储计数,然后将其恢复为初始状态。
所以这实际上取决于您需要执行 5 次规则的严重程度。
如果您想让它烦人.. 但并非不可能,那么只需将用户使用该应用的次数存储在数据库或文件中即可。
如果您需要强制执行此操作并使其无法破坏,那么您需要让网络服务器完成所有处理,并且他们的用户名只允许 5 次使用。
请记住,除非您使用网络服务器,否则您可以绕过您所做的任何限制。如果您不能使用网络服务器,那么您至少要混淆您的代码。请参阅以下链接:
【讨论】:
如果您的应用连接到互联网,则无需添加特殊权限,您就可以使用 Google 云存储设备首选项。
http://code.google.com/appengine/
【讨论】:
您可以在OnClickListener查看:
button.setOnClickListener(new View.OnClickListener() {
int counter = 0;
@Override
public void onClick(View v) {
if (counter >= 5) {
v.setEnabled(false);
v.setClickable(false);
// display some message
}
else {
// normal operations
++i;
}
}
}
您可能希望 counter 是静态的或其他东西,以防止在活动更改或类似情况后进行 5 次计算。
【讨论】: