限制免费版本的数据库条目

时间:2011-04-17 05:50:11

标签: java android

我希望提供免费版本的应用。限制是,一旦您将15个注释保存到数据库,您将被限制为每月添加5个注释。每当您达到限制时,每次尝试在达到限制后制作新笔记,我都会提示用户通过应用内购买解锁应用。在达到初始限制后30天,或者如果更容易的话,他们将能够添加5个音符,并且在他们全部使用之前我不会打扰他们。限制不会翻转。

有没有人有解决这个问题的最佳方法?

2 个答案:

答案 0 :(得分:1)

我建议你看看Wrapper (also called Adapter) Design Pattern。 实现该模式的解决方案包括:

  • 一个类,其目的是向数据库添加注释。我们将方法称为 addNote(注意新注)
    class NotesManagement {
      public boolean addNote(Note newNote) {
        //Add Note to database and return whether it was successfull or not
      }
    }
  • 包装上一个类并覆盖该方法的类:
    class TrialNotesManagement extends NotesManagement {
       private NotesManagement notesManagement;

       public TrialNotesManagement() {
         notesManagement = new NotesManagement();
       }

       @Override
       public boolean addNote(Note newNote) {
         if (isAllowedToAdd()) {
           return notesManagement.add(newNote);
         } else {
           return false;
         }
       }

       private boolean isAllowedToAdd() {
         //Do the check--Suggestion: in the "database" have a counter that it's reseted each 1st daty of the month
       }
    }
  • 处理请求的类应如下所示:

    class AppController {
       NotesManagement notesManagement;
       public AppController() {
         if (isTrial()) {
           notesManagement = new TrialNotesManagement();
         } else {
           notesManagement = new NotesManagement();
         }
       }

       public boolean addNote(Note newNote) {
         notesManagement.addNote(newNote);
       }
    }

答案 1 :(得分:0)

我强烈建议您使用网络通信来完成此操作,即使您的应用不使用互联网。如果您真的希望能够相信用户不会篡改参数以实现额外的免费使用,则应该在您自己的服务器上进行验证,而不是在他们的设备上进行验证。

每当创建一个注释时,都应该使用用户标识符向您的服务器发送一条消息。然后,您可以跟踪笔记(即使您没有存储笔记的内容),也可以在需要时发回消息,以防止笔记被创建。

这样,您也可以在不更改应用的情况下更改阈值。