4

我正在尝试获取有关如何将我的应用程序添加为 Android 设备的点击付款选项的一些信息。

可以将 PayPal 和 Android Pay 等应用设置为在检测到 NFC 接触时启动的默认应用。我希望我的支付应用程序可以在有人进行 NFC 轻触时启动。

目前,我的应用程序可以通过 Android Beam 功能利用 NFC,但我很想知道如何将我的应用程序作为点击支付的默认选项包含在内,以便 NFC 点按可以直接启动应用程序。

4

1 回答 1

0

我正在尝试像您一样做同样的事情,我发现这个问题可以让您将您的应用程序显示为付款方式。

应用程序在 Tap and Pay 中不可见

在您的android清单中的应用程序标记中添加此行...

 <service android:exported="true" android:name="my.package.MyPaymentService" android:permission="android.permission.BIND_NFC_SERVICE">
        <intent-filter>
            <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice" />
    </service>

然后使用此内容在您的 xml 文件夹中创建一个名为 apdusehvices.xml 的文件...

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:requireDeviceUnlock="true"
    android:apduServiceBanner="@drawable/ic_fingerprint_error">

    <aid-group
        android:category="payment"
        android:description="@string/app_name" >
        <aid-filter
            android:name="325041592E5359532E4444463031"
            android:description="@string/ppse" />
        <aid-filter
            android:name="A0000000041010"
            android:description="@string/mastercard" />
        <aid-filter
            android:name="A0000000031010"
            android:description="@string/visa" />
        <aid-filter
            android:name="A000000003101001"
            android:description="@string/visa" />
        <aid-filter
            android:name="A0000002771010"
            android:description="@string/interac" />
    </aid-group>

您将需要在您的值 => 字符串和可绘制文件夹中的背景图像中设置字符串变量。

现在我可以选择我的应用程序作为 Tap & Pay 应用程序,但是当我选择它时,应用程序崩溃了,我想这是因为我没有在那里创建服务类并且清单指向 my.package.MyPaymentService。

于 2018-12-10T15:40:27.123 回答