如何在用户输入正确的密码之前阻止用户执行任何活动

时间:2014-02-06 15:37:00

标签: android

请查看附加图像,它显示我想要的活动屏幕。我想阻止用户继续进行,直到他输入正确的密码。我想在重启后手机启动时出现此屏幕。

我已经为侦听器设备启动过程编写了监听器。

public class DeviceStartUpListener extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
        {
            // some code
            Intent authenticationIntent = new Intent(applicationContext, PostStartupAuthenticationActivity.class);
            authenticationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(authenticationIntent);
        }
    }
}

我希望PostStartupAuthenticationActivity覆盖整个屏幕并询问用户密码。此活动应隐藏屏幕底部的所有按钮。在输入正确的密码或连续3次输入错误的密码之前,您不应该转移到任何其他活动。

在PostStartupAuthenticationActivity中我在onCreate方法中编写了以下代码,但这不能正常工作,活动全屏显示,但屏幕底部的按钮仍然可见,例如主页按钮和后退按钮仍然可见,我想要活动以全屏模式打开但屏幕底部没有按钮可见,我现在的活动看起来像这样,请找到第二张附图: -

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    mIntent = getIntent();

    //set fullscreen and no title
    //        requestWindowFeature(Window.FEATURE_NO_TITLE);

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.post_starup_authentication_activity);
}

提前致谢。 Activity should look like this an text box should be used for entering password.

1 个答案:

答案 0 :(得分:1)

如果您正在尝试制作可以通过密码锁定设备的应用程序 - 您不会实现它并且您尝试这样做是没用的。用户总是可以按下“主页”按钮,你的应用程序将在后台运行。
但如果你只想阻止用户使用你的特定应用程序而不通过密码屏幕 - 只是在用户输入之前不要启动任何活动正确的密码,如:

if (entered_password_is_correct())
    start_next_corresponding_activity();