Android 如何访问KeyChain.choosePrivateKeyAlias活动?

Android 如何访问KeyChain.choosePrivateKeyAlias活动?,android,key,Android,Key,以下方法:创建系统对话框,允许用户从列表中选择密钥别名。作为参数之一,它接受将用于生成此对话框的活动上下文。选择后,它将调用回调 在我的场景中,用户不选择任何别名,而是按“主页”按钮。我想拦截这个事件。我该怎么做 另外,我想以编程方式取消此对话框。在这种情况下,我需要某种方式来访问此子活动(请注意,choosePrivateKeyAlias不会向新对话框返回任何“句柄”)。是否可以在没有任何引用(句柄/id/等)的情况下访问子活动?根据我的理解,如果您想关闭该对话框。那么就我所知的安卓操作系统。

以下方法:创建系统对话框,允许用户从列表中选择密钥别名。作为参数之一,它接受将用于生成此对话框的活动上下文。选择后,它将调用回调

在我的场景中,用户不选择任何别名,而是按“主页”按钮。我想拦截这个事件。我该怎么做


另外,我想以编程方式取消此对话框。在这种情况下,我需要某种方式来访问此子活动(请注意,
choosePrivateKeyAlias
不会向新对话框返回任何“句柄”)。是否可以在没有任何引用(句柄/id/等)的情况下访问子活动?

根据我的理解,如果您想关闭该对话框。那么就我所知的安卓操作系统。活动有生命周期方法。所以我想

如果在活动的“onStop()”中调用“yourDailog.dismission()”。这样您的问题就会得到解决


若你们用上面的方法来做,那个么每当你们按下HOME按钮,它就会调用你们活动的onStop方法。此时,它将关闭该对话框。

无法通过编程方式结束该活动,因为它是一个系统活动。这与在设备或联系人列表上启动浏览器相同。退出该活动的唯一方法是按“上一步”,它将关闭该活动并继续您的活动。

请解释“yourDialog”是什么?生成系统对话框时,我没有收到任何对它的引用。请检查它是否为public void onWindowFocusChanged(boolean isTrue){super.onWindowFocusChanged(isTrue);if(!isTrue){Intent closeDialog=new Intent(Intent.ACTION_CLOSE_system_DIALOGS);}请参阅生成的解除系统的意图部分dialog@VVB我对
chooseAlisPrivateKey
有类似的疑问。在我的例子中,我试图保存用户已授予特定别名的权限,以便对话框只打开一次,并且只要用户拥有应用程序,它就不会显示给用户。因此,我尝试使用,但当用户点击后退按钮并再次打开应用程序时,我的首选项确实显示布尔值已保存。但是,当我试图运行任务来检索证书和私钥时,该任务永远不会完成。你对这个问题有什么建议吗?好的。但若有人按下“最近的应用程序”并选择其他活动,我该怎么办?在这种情况下,我不会在自己的活动中收到任何回调。这是真的,但只有在有人实际选择了一个键时,您才会收到回调,对吗?要做到这一点,您的活动必须处于活动状态,因为对话框显示在您的活动中。。。我刚刚通过执行KeyChain.choosePrivateKeyAlias调用对此进行了测试,并显示了一个对话框。。。当我按home键并返回活动时,对话框仍然可见。这不是你这边的情况吗?当系统对话框在我的活动顶部生成时,我收到一个回调。在此之后,直到用户关闭对话框,我才收到任何信息。如果用户切换到其他活动,我不会收到任何通知。