如何在没有AccountManager或权限的情况下在EditText上显示用户电子邮件

时间:2018-09-04 13:55:33

标签: android

当我单击电子邮件的EditText时,我看到了很多应用程序,它显示了我在设备上使用的电子邮件列表,例如图像auto fill email

而且我确定它不是AccountManager,因为它没有询问我权限而不是Google智能锁 另外,我尝试了AutoFill服务

<android.support.design.widget.TextInputLayout
        android:id="@+id/editNameInputLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/toolbar">

        <android.support.design.widget.TextInputEditText
            android:id="@+id/editName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/name"
            android:imeOptions="actionNext"
            android:inputType="text"
            android:textAlignment="viewStart"/>

    </android.support.design.widget.TextInputLayout>

并且以编程方式但不起作用

 editEmail.setAutofillHints(View.AUTOFILL_HINT_EMAIL_ADDRESS);
 editEmail.setImportantForAutofill(IMPORTANT_FOR_AUTOFILL_YES);

1 个答案:

答案 0 :(得分:3)

Autofill framework提供了可填充先前输入的密码,信用卡号等的功能。

您可以设置autofillhints以允许该框架填写详细信息。

关注Optimize your app for autofill,了解更多详情

注意:

  

必须在设备上配置自动填充服务,以便您的应用能够   使用自动填充框架。尽管大多数手机和平板电脑都在运行   Android 8.0(API级别26)及更高版本附带自动填充服务,   我们建议您在测试应用程序时使用测试服务