【问题标题】:Block use after 5 uses使用 5 次后停止使用
【发布时间】:2012-03-29 05:40:05
【问题描述】:

我想要我的应用程序经过五次计算。 即使用5次。 用它屏蔽五次后,会显示购买PRO版的信息

我的应用程序我是如何计算,计算和使用按钮的,我想我可以计算按下计算按钮的次数,只是不知道5次后如何锁定。

谁帮帮我,谢谢

【问题讨论】:

    标签: android licensing


    【解决方案1】:

    创建一个类来跟踪您的应用加载并将它们保存在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 中调用该函数。

    【讨论】:

    • 这就是我要建议的!你打败了我;)
    • 我使用类似的东西在 x 加载和 y 天后显示“评价我的应用程序”对话框。到目前为止效果很好。
    • @Woodsy 如果用户从Settings -> Applications -> Manage applications -> The APP -> Clear data 清除应用程序数据,首选项不会被删除,用户可以再次使用该应用程序吗?
    • 肯定会,除非您还知道他们安装了多久。但随后他们可以卸载/重新安装该应用程序。这就是为什么我将我的答案添加到此列表中的原因,因为正确答案实际上取决于需要执行的程度
    • 您仍然可以删除 SD 卡上的文件。就像我说的,这取决于您需要将用户限制为 5 次使用的严重程度。如果您只是想让它烦人但在 5 次使用后仍然可以使用,请使用 Woodsy 的答案。如果你想让它几乎不可能,让他们使用登录到网络服务器的用户名或使用 dcanh121 的建议并将其存储在云中。但是,即使您将使用次数存储在云中.. 是什么阻止用户反编译您的应用程序并删除它检查服务器的行?这就是你需要混淆的原因。
    【解决方案2】:

    这里的关键是有人可以随时获取您的应用程序,对其进行反编译,然后对其进行更改以绕过计数,或者只需弄清楚您如何存储计数,然后将其恢复为初始状态。

    所以这实际上取决于您需要执行 5 次规则的严重程度。

    如果您想让它烦人.. 但并非不可能,那么只需将用户使用该应用的次数存储在数据库或文件中即可。

    如果您需要强制执行此操作并使其无法破坏,那么您需要让网络服务器完成所有处理,并且他们的用户名只允许 5 次使用。

    请记住,除非您使用网络服务器,否则您可以绕过您所做的任何限制。如果您不能使用网络服务器,那么您至少要混淆您的代码。请参阅以下链接:

    【讨论】:

    • 我认为目前没有必要通过 Web 服务器进行操作。过来怎么办最好?即使用户清理列表或卸载并重新安装,至少也要避免这种情况?
    【解决方案3】:

    如果您的应用连接到互联网,则无需添加特殊权限,您就可以使用 Google 云存储设备首选项。

    http://code.google.com/appengine/
    

    【讨论】:

      【解决方案4】:

      您可以在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 次计算。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 2013-11-07
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 2021-04-02
        相关资源
        最近更新 更多