android小部件提示解锁



我在开发应用程序时遇到问题,我正在构建一个可以在锁屏上或主页中的Widget。当在锁屏中时,我希望当用户点击按钮时,小部件会提示用户登录,以备需要。我的意思是提示模式、密码或人脸识别,这取决于用户是否启用了任何安全功能。在用户输入他的模式之后,小部件将运行一个应用程序(intent)。

我注意到一些小部件确实提示登录,而另一些则没有。我没有发现它们之间的区别。

我认为这必须是在onReceive方法上,但不确定我如何才能调用这个"登录"方法,到目前为止,在on Receive上我启动了意向

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中激发意图时,就会出现问题。我所做的是允许用户与小部件按钮进行交互,这取决于用户所选择的内容。我将打开我的应用程序,为目的添加一些额外的内容。

因此,在我的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。

当小部件在主屏幕上而不是在loockscreen上时,我的context.startActivity方法工作得很好。

我怎么能做到这一点。

我找不到答案,我最终做的是创建一个动态按钮,当小部件(通过其他按钮)更新时,我将PendingIntent分配给这个按钮。

因此,当用户单击此动态按钮时,小部件会尝试打开意图,并在提示用户输入密码时出现。

我认为这不是最好的解决方案,因为我们让用户额外点击小部件。

最新更新