【问题标题】:Android Autofill Phone Number not appearing, only showing 'Passwords'Android自动填充电话号码未出现,仅显示“密码”
【发布时间】:2021-08-16 20:18:39
【问题描述】:

我正在尝试在 EditText 字段中利用 Android 的自动填充功能,在键盘顶部向用户提供使用与其设备/帐户关联的电话号码的建议,如下图所示。

我尝试将android:autofillHints="phone"android:autofillHints="phoneNumber" 添加到布局的xml 文件中。这两个选项都导致出现此“密码”按钮的左侧屏幕截图。 (我也在实际设备而不是模拟器上测试了这段代码)

要查看我是否没有正确使用自动填充,或者这是否是设备/帐户问题,我尝试将代码更改为 android:autofillHints="emailAddress"。这导致正确的屏幕截图显示了帐户的电子邮件地址(为保护隐私而编辑)。这让我相信我的帐户中可能没有保存电话号码或其他原因,这就是它默认为“密码”的原因。

我的问题是:

  1. 为什么会出现这个“密码”字段?
  2. 如果用户的帐户中没有电话号码,如何隐藏“密码”字段? (如果是这个原因)
  3. 有没有更好的方法来做到这一点?

任何帮助将不胜感激。

这里是编辑文本的xml代码:

<EditText
    android:id="@+id/appt_type_phone_number_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:autofillHints="phone"
    android:importantForAutofill="yes"
    android:background="@android:color/transparent"
    android:ems="10"
    android:hint="@string/enter_phone_number"
    android:inputType="phone"
    android:maxLength="16"
    android:textSize="14sp"
    android:padding="16dp"
    tools:targetApi="O"
    />

【问题讨论】:

  • 请添加您正在尝试的xml代码
  • 添加了xml代码

标签: android android-studio kotlin autofill android-autofill-manager


【解决方案1】:
  1. 这取决于您的自动填充服务为您的应用提供什么。

  2. & 3. 您可以通过编程方式设置 autofillHints。

     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityMainBinding.inflate(layoutInflater)
         setContentView(binding.root)
         binding.appt_type_phone_number_text.setAutofillHints(View.AUTOFILL_HINT_PHONE) }
    

参考:Optimize your app for autofill

【讨论】:

  • 让我们同意:这完全是无意义的行为!如果程序员选择 autofill=phoneNumber 为什么 Android 应该向用户显示锁/密码图标?这一定是 Android 中的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 2019-09-02
  • 1970-01-01
相关资源
最近更新 更多