Android 密码管理器应用程序如何工作?

How Android Password manager App works?

我在 android 中很少看到像 lastpass 这样的密码管理器应用程序。 我也在尝试构建这种应用程序。

这些应用程序如何工作?

他们如何访问第三方应用程序的 EditText 和 PasswordField?

他们如何检测登录屏幕?

这个应用程序使用 Android 系统 api 吗?

请给我提示。这是怎么回事?

更新

我在网上找到了一个有用的 resource。但是它没有说明使用哪个api!

经过大量搜索,我得到了解决方案。可以使用 accessibility api 访问第三方应用程序的 EditText 和 PasswordField 我们可以使用 AccessibilityNodeInfoAccessibilityNodeInfo.ACTION_SET_TEXT 设置和获取 edittext 和密码字段的值。我用这个 api 完成了这件事。检测哪个应用在屏幕上 运行。您必须将此行 android:packageNames="com.example" 放入您的 accessibility.xml 文件中。

其中 com.example 是您要为其触发无障碍服务的应用程序包名称。

请从 android.developer 站点阅读与无障碍服务相关的文档。

示例 accessibility.xml

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeViewFocused|typeViewClicked"
    android:packageNames="com.example"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:notificationTimeout="100"
    android:canRetrieveWindowContent="true"
    android:canRequestEnhancedWebAccessibility="true"/>