我在android中遇到过很少的密码管理器应用,比如lastpass。 我也在尝试构建这种应用程序。
这个应用程序如何运作?
他们如何访问EditText&第三方应用的密码字段?
他们如何检测登录屏幕?
此应用使用的是哪个Android系统API?
请给我提示。这件事是如何运作的?
更新
我在网上找到了一个有用的resource。但它没有说明使用哪种API!
答案 0 :(得分:3)
经过搜索,我得到了解决方案。可以访问EditText&使用accessibility api的第三方应用的PasswordField我们可以设置&获取edittext&的值密码字段使用AccessibilityNodeInfo
& 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"/>