自定义 Android 自动填充服务不会出现在自动填充应用中

Posted

技术标签:

【中文标题】自定义 Android 自动填充服务不会出现在自动填充应用中【英文标题】:Custom Android Autofill service doesn't appear in autofill apps 【发布时间】:2018-12-13 10:18:48 【问题描述】:

我按照this 指南构建了一个自动填充服务。我正在通过 android Studio 在 Pixel API 27 模拟器上运行它。

这是我的清单文件:`

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <service android:name=".EmailAddressFiller"
        android:permission="android.permission.BIND_AUTO_FILL">
        <meta-data android:name="android.autofill"
            android:resource="@xml/email_address_filler"/>
        <intent-filter>
            <action android:name="android.service.autofill.AutofillService"/>
        </intent-filter>
    </service>
    <activity android:name=".MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

`

然而,当我进入设置 > 系统 > 语言和输入 > 自动填充服务时, 我不认为我的自定义服务是一种选择。

很想在这里听到关于这个问题的任何想法。

【问题讨论】:

我得到了类似的答案Autofill Service Provider Android Oreo: what should I do to publish my app as an Autofill service provider?的可能重复 【参考方案1】:

您必须创建自定义 EditText 并将 importantForAutofill 设置为 no 和

  <style name="EditTextStyleWithoutAutoFill" 
   parent="Widget.AppCompat.EditText">
  <item name="android:importantForAutofill">no</item>
   </style>

并在你的活动主题中调用它

 <item name="android:editTextStyle">@style/EditTextStyleWithoutAutoFill</item>

快乐编码 ;)

【讨论】:

感谢您的快速回答!还有一件事 - 自定义 EditText 应该在哪个文件中? activity_main? 你在活动主题中称这很简单

以上是关于自定义 Android 自动填充服务不会出现在自动填充应用中的主要内容,如果未能解决你的问题,请参考以下文章

Android 自动填充服务在 Chrome 中不起作用

Android 自定义可拖拽View,界面渲染刷新后不会自动回到起始位置

如何让 Visual Studio ToolBox 自动填充项目组件?

Android:自定义 ListView 不会立即填充

阻止 Chrome 显示自动填充选项

如何在 Material-UI 自动完成控件中自定义填充?