You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Compose应用中启用键盘的扫描新卡片功能

在Compose中实现信用卡扫描自动填充功能

要触发系统提供的“扫描新卡片”自动填充选项,你的现有Autofill Modifier缺少关键配置,以下是完整实现方案:

1. 指定正确的Autofill类型与提示

系统仅会对明确标记为信用卡相关的字段提供扫描选项,必须使用对应AutofillType和系统Autofill提示:

  • 信用卡卡号:AutofillType.CreditCardNumber + View.AUTOFILL_HINT_CREDIT_CARD_NUMBER
  • 有效期:AutofillType.CreditCardExpirationDate + View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE
  • 安全码:AutofillType.CreditCardSecurityCode + View.AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE

2. 修正Autofill Modifier实现

添加autofillHints参数关联系统提示,让系统识别字段类型:

fun Modifier.creditCardAutofill(
    autofillTypes: List<AutofillType>,
    autofillHints: List<String>,
    onFill: (String) -> Unit,
) = composed {
    val autofill = LocalAutofill.current
    val autofillNode = AutofillNode(
        onFill = onFill,
        autofillTypes = autofillTypes,
        autofillHints = autofillHints
    )
    LocalAutofillTree.current += autofillNode

    this.onGloballyPositioned {
        autofillNode.boundingBox = it.boundsInWindow()
    }.onFocusChanged { focusState ->
        autofill?.run {
            if (focusState.isFocused) {
                requestAutofillForNode(autofillNode)
            } else {
                cancelAutofillForNode(autofillNode)
            }
        }
    }
}

3. 在输入框中应用Modifier

以信用卡卡号输入框为例:

var cardNumber by remember { mutableStateOf("") }

OutlinedTextField(
    value = cardNumber,
    onValueChange = { cardNumber = it },
    label = { Text("信用卡卡号") },
    modifier = Modifier.creditCardAutofill(
        autofillTypes = listOf(AutofillType.CreditCardNumber),
        autofillHints = listOf(View.AUTOFILL_HINT_CREDIT_CARD_NUMBER),
        onFill = { cardNumber = it }
    )
)

4. 系统与设备要求

  • 设备需运行Android 8.0(API 26)及以上,Autofill框架从该版本开始支持。
  • 系统已启用支持信用卡扫描的Autofill服务(如Google自动填充服务),可在系统设置中确认。
  • 输入框获得焦点时,系统会自动弹出包含“扫描新卡片”的填充菜单。

排查要点

  • 确认AutofillType和autofillHints与字段类型严格匹配,系统依赖这些标记识别信用卡字段。
  • 检查设备Autofill服务是否开启,部分第三方Autofill服务可能不支持信用卡扫描功能,建议使用系统默认服务测试。

内容的提问来源于stack exchange,提问作者Ujjwal Kumar Maharana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:00:18