我在开发应用程序时遇到问题,我正在构建一个可以在锁屏或主页上的Widget。当我在锁屏时我希望当用户点击按钮时,小部件提示用户登录以备需要时。我的意思是提示模式或密码或面部识别,具体取决于用户是否启用了任何此安全性。 在用户输入他的模式后,小部件将运行应用程序(意图)。
我注意到有些小部件会提示登录,而其他小部件却没有找到它们之间的区别。
我认为这必须在onReceive方法上,但不知道如何调用这个“登录”方法,到目前为止on onceceive我启动了意图
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.getApplicationContext().startActivity(i);
但这仍然没有提示登录。当小部件在锁屏上时。
假设用户在锁定屏幕中与小部件交互,用户不会提示输入密码,无论用户输入他的模式密码还是用户“输入”他的主屏幕和应用程序之后开始了。因此,小部件确实启动了意图,只是不让用户“知道”或登录以查看应用程序。
有关如何提示用户输入其模式以便进入主屏幕的任何想法?
[编辑]
当我尝试在BroadcastReceiver中触发intent时会出现问题。 我所做的是允许用户与widgetd按钮进行交互,具体取决于用户选择的内容。我将打开我的应用程序,为意图添加一些额外内容。
所以在我的BroadcastReceiver的onReceive方法上我试着解雇:
Intent i = new Intent(context, MyActivity.class);
i.putExtra(WidgetUtils.TAG_CURRENT_SELECTION, StringIGotFromInteraction);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.getApplicationContext().startActivity(i);
这样意图不会提示“解锁”。
如果在onUpdate中我将待处理的意图转换为任何按钮,当用户点击该按钮时会以这种方式提示解锁:
views.setOnClickPendingIntent(R.id.aButton, buildAPendingIntent(context));
但我需要知道用户选择打开的内容和Intent,以防我打开任何内容。
并且我的contex.startActivity方法在主屏幕上的小部件不在loockscreen上时工作正常。
有什么想法我怎么能让这件事发生。
答案 0 :(得分:0)
我找不到答案我最终做的是创建一个动态按钮,当窗口小部件更新时(通过其他按钮)我将PendingIntent分配给此按钮。
因此,当用户单击此动态按钮时,窗口小部件会尝试打开意图,并在提示用户输入密码时存在。
我认为这不是我们让用户额外点击小部件的最佳解决方案。