Android应用程序Beta的密码系统

时间:2011-12-05 19:28:39

标签: java android debugging

我在过去几天一直在开发我的第一个Android应用程序,我终于进入了测试版阶段。我和我的一些朋友很快就会正确地尝试应用程序,因为它应该被使用。

我曾尝试实施密码系统,因此如果程序在测试期间泄漏,其他beta测试人员将无法使用它。要做到这一点,我已经制定了一个算法(我认为这就是他们所谓的),它将根据一年中的周数提供密码。这并不复杂,但我怀疑任何我认识的人都能破解它。

无论如何,这个活动是清单中的.LAUNCHER和.MAIN,我正在为Android 2.1(API 7)开发。加载时会创建一个editText和一个按钮。基本上当按下按钮并且editText等于算法的答案时,它应该打开主应用程序。但它不起作用。

我在eclipse中使用了调试工具来检查所有变量是否正确并且它们都是但它不想工作。任何人都可以帮我这个。我的代码如下。

import java.util.Calendar;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.GetChars;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class ContactActivity extends Activity {
    EditText Code; // prepare xml stuff
    Button Go;

    int Turns = 3; // turns in total

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.checkcode);

        Go = (Button) findViewById(R.id.bGo); // link go button
        Code = (EditText) findViewById(R.id.etCode); // link code to text box

        Go.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                String UserCode = (String)Code.getText().toString();
                int WeekNo = Calendar.WEEK_OF_YEAR;
                int Algorithm = WeekNo * 123 + WeekNo;
                String Answer = Integer.toString(Algorithm);

                if(UserCode == Answer){
                    Intent beginContact = new Intent("com.URS.Kalashnikov.MAINPAGE"); // set intent to switch to 
                    // main activity
                    startActivity(beginContact); // start activity
                } else {
                    Turns -= 1; // remove turns by one

                    if(Turns <= 0){
                        Context context = getApplicationContext();
                        CharSequence text = "Incorrect Code. No chances left";
                        // text for the toast
                        int duration = Toast.LENGTH_LONG; // toast length

                        Toast warning = Toast.makeText(context, text, duration); // prepare a toast
                        warning.show(); // show the toast

                        finish(); // kill the program if there is zero turns left
                    } else {
                        Code.setText("");

                        // make a toast
                        Context context = getApplicationContext();
                        CharSequence text = "Incorrect Code - Please try again. You have " + Turns + " chances left";
                        // text for the toast
                        int duration = Toast.LENGTH_LONG; // toast length

                        Toast warning = Toast.makeText(context, text, duration); // prepare a toast
                        warning.show(); // show the toast
                    }
                }
            }

        });
    }
}

我的代码中还有一些我没有提及的额外内容,但你可能会想出来。

2 个答案:

答案 0 :(得分:0)

仅在(UserCode == "test")时启动您的活动。您的代码片段似乎是硬编码的。尝试在编辑框中输入test。您的活动是否已启动?

修改

试试这个:

Intent beginContact = new Intent(this, YouActivity.class);`

答案 1 :(得分:0)

实际上,Java中的 UserCode == Answer 并不比较两个字符串,而是比较两个对象。在你的情况下,他们将永远不会平等。使用 UserCode.equalsIgnoreCase(Answer) UserCode.equals(Answer)代替