我在 android 中见过很少的密码管理器应用程序,比如 lastpass。我也在尝试构建这种应用程序。
这个应用程序是如何工作的?
他们如何访问第三方应用程序的 EditText 和 PasswordField?
他们如何检测登录屏幕?
这个应用程序使用任何Android系统api吗?
请给我提示。这些东西是如何运作的?
更新
我在网上找到了一个有用的资源。但它没有说明使用哪个api!
经过大量搜索后我得到了解决方案。可以使用可访问性 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)
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |