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

Vij*_*ede 5 passwords android

我在 android 中见过很少的密码管理器应用程序,比如 lastpass。我也在尝试构建这种应用程序。

这个应用程序是如何工作的?

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

他们如何检测登录屏幕?

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

请给我提示。这些东西是如何运作的?

更新

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

Vij*_*ede 5

经过大量搜索后我得到了解决方案。可以使用可访问性 apiAccessibilityNodeInfo访问第三方应用程序的 EditText 和 PasswordField,我们可以使用&设置和获取 edittext 和密码字段的值AccessibilityNodeInfo.ACTION_SET_TEXT。我通过使用这个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"/>
Run Code Online (Sandbox Code Playgroud)