天道酬勤,学无止境

android-autofill-manager

保存自动填充对话框未显示(Save for autofill dialog not showing up)

问题 我有一个显示用户名 UI 的活动,在输入并点击继续按钮后显示输入密码 UI。 输入密码并点击登录按钮完成当前活动并启动新活动。 在我的设备上,我选择了 Google 自动填充服务,因此在完成第一个活动后我想“保存以供自动填充?” 对话框出现,但事实并非如此。 我通过在我的活动中添加 autofillHints 和任何其他内容来准备我的应用程序。 我应该为弹出的对话框添加任何内容吗? 回答1 尽管遵循文档并将autofillHints添加到我的布局中,但我在模拟器上遇到了类似的行为,其中在使用 Google 自动填充服务时调用AutofillManager.commit()没有触发保存 UI。 FWIW,我从模拟器切换到物理设备,即使我没有对实现进行任何更改,保存 UI 也开始正确触发。 在这两种情况下,我都登录了 Google 帐户,并且在这两种情况下,Google 的示例调试自动填充服务都正确触发了保存 UI。 我注意到你说的是“设备”,所以也许这不适用于你,但如果你使用模拟器,在物理设备上进行测试可能值得一试,而且似乎没有其他解释为什么它不会'不显示。 回答2 我遇到了与您的情况类似的问题,请找到解决方案: 1- 确保您添加了以下权限以显示: <uses-permission android:name="android.permission.BIND_AUTOFILL

2021-10-25 02:01:21    分类:技术分享    android   autofill   android-autofill-manager

如何从 Android Oreo 禁用新的自动填充功能以进行浓缩咖啡测试(How to disable the new Autofill feature from Android Oreo for espresso tests)

问题 使用sdk 26在 android 设备上运行测试会导致它们失败,因为新的自动填充功能会在 espresso 尝试单击它们时隐藏这些字段。 我在 firebase 测试实验室上运行我的测试,所以我无法在我的测试设备上手动禁用它们。 一些图片: 1. 在点击用户名字段之前密码是可见的。 2. 单击用户名字段后,此自动填充对话框隐藏密码字段: 3. 登录后,它会显示另一个填充对话框: Espresso 现在无法单击密码字段,因为自动填充对话框隐藏了我的字段并fail 。 使用AutofillManager#disableAutofillServices()只会禁用 #2。 对话但#3。 还在。 如何在测试设备上禁用自动填充? 回答1 adb shell pm disable com.google.android.gms/com.google.android.gms.autofill.service.AutofillService 这应该禁用自动填充服务。 与在系统设置中手动关闭自动填充服务相同。 它至少适用于模拟器。 但这需要root访问权限。 另一种禁用自动填充服务的方法是更改autofill_service设置。 adb shell settings put secure autofill_service null 回答2 根据文档,您可以使用 AutofillManager

2021-10-19 16:21:27    分类:技术分享    android   testing   android-espresso   android-testing   android-autofill-manager

Save for autofill dialog not showing up

I have an activity that shows username UI, after entering that and tapping on continue button shows the enter password UI. On entering password and tapping on login button finishes the current activity and launches a new activity. On my device I selected Google autofill service, so on finish of the 1st activity I want "save for autofill?" dialog to show up, but it isn't. I prepared my app by adding autofillHints and nothing else in my activity. Should I add anything for the dialog to pop up?

2021-09-05 23:49:01    分类:问答    android   autofill   android-autofill-manager

How to disable the new Autofill feature from Android Oreo for espresso tests

Running tests on android devices with sdk 26 causes them to fail because of the new Autofill feature that hides the fields when espresso are trying to click them. Im running my tests on firebase test lab so I cannot disable them manually on my tests devices. Some images: 1. Password is visible before clicking username field. 2. After clicking username field password field is hidden by this Autofill dialog: 3. After login it shows another Fill dialog: Espresso cant click now password field since the autofill dialog is hiding my field and fail. Using AutofillManager#disableAutofillServices()

2021-06-04 05:35:36    分类:问答    android   testing   android-espresso   android-testing   android-autofill-manager

禁用应用程序的Android O自动填充服务(Disabling Android O auto-fill service for an application)

问题 Android O具有支持字段自动填充的功能。 有什么方法可以针对特定应用程序禁用它。 那就是我要强制我的应用程序不要使用自动填充服务。 是否可以 ? 要阻止整个活动的自动填充,请在活动的onCreate()中使用此功能: getWindow() .getDecorView() .setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS); 有没有比这更好的方法了? 回答1 是否可以 ? 不是我知道的。 当然,没有任何文件记录。 有没有比这更好的方法了? 不是我知道的。 回答2 当前,没有直接的方法可以禁用整个应用程序的自动填充功能,因为自动填充功能是特定于视图的。 您仍然可以尝试这种方式,并在任何地方调用BaseActivity。 public class BaseActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); disableAutofill(); } @TargetApi(Build.VERSION_CODES.O) private void

2021-04-19 02:11:12    分类:技术分享    android   textview   autofill   android-8.0-oreo   android-autofill-manager

Disabling Android O auto-fill service for an application

Android O has the feature to support Auto-filling for fields. Is there any way I can disable it for a specific application. That is I want to force my application not to use the auto-fill service. Is it possible ? To block autofill for an entire activity, use this in onCreate() of the activity: getWindow() .getDecorView() .setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS); Is there any better method than this ?

2021-03-26 13:35:37    分类:问答    android   textview   autofill   android-8.0-oreo   android-autofill-manager