2014-06-09 15 views
5

điều quan trọng để điều chỉnh trong ứng dụng NFC HCE để làm cho nó có thể nhìn thấy dưới cài đặt NFC Tap và Payứng dụng không hiển thị trong Tap và Pay

Tiếp theo mã trả về đúng đối với các ứng dụng là gì, do đó, nó có khả năng thanh toán:

boolean isDefault = CardEmulation 
       .getInstance(NfcAdapter.getDefaultAdapter(this)) 
       .isDefaultServiceForCategory(
         new ComponentName(this, MyPaymentService.class), 
         CardEmulation.CATEGORY_PAYMENT); 

khai dịch vụ trong biểu hiện:

<service 
    android:name="my.package.MyPaymentService" 
    android:exported="true" 
    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> 

apduservice:

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

    <aid-group 
     android:category="payment" 
     android:description="@string/paymentGroup" > 
     <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> 

</host-apdu-service> 

Tôi đang thiếu thứ gì đó nhưng không chắc chắn nên đặt ở đâu và ở đâu.

Cảm ơn.

+0

Bạn có thể đăng tệp kê khai ứng dụng và tệp XML máy chủ lưu trữ-apdu không? –

Trả lời

7

Để được hiển thị trong menu nhấn và thanh toán, ứng dụng HCE phải cung cấp đồ họa biểu ngữ. Bạn sẽ bao gồm các đồ họa vào XML host-apdu dịch vụ sử dụng thuộc tính android:apduServiceBanner:

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

    <aid-group android:category="payment" 
       android:description="@string/paymentGroup" > 
     <aid-filter ... /> 
    </aid-group> 
</host-apdu-service> 

Banner dịch vụ phải là một tập tin đồ họa (ví dụ một .png tập tin) với kích thước 260 x 96 pixel.

+0

Không có văn bản nào có sẵn cùng với biểu ngữ? – Niko

+0

Tôi không chắc chắn 100% nhưng tôi không nghĩ vậy. –

+2

Chỉ có một biểu ngữ có sẵn, không có văn bản nào được hiển thị. – patrickandroid

1

Sử dụng mẫu Google này project, tôi đã cố thêm các đề xuất của @Michael Rowland (ví dụ: thêm android: apduServiceBanner, danh mục và mô tả).

Kết quả là hình ảnh hiển thị trong màn hình Cài đặt nhấn và thanh toán chứ không phải văn bản. Tôi đã đăng nhập một vấn đề với dự án mẫu, nhưng không mong đợi bất kỳ giải pháp nào.

Cách giải quyết hiện tại là tạo ra một apduServiceBanner drawable có văn bản được tích hợp vào drawable.

1

Thông tin bổ sung - nếu bạn quên hai dòng sau trong tệp kê khai, ứng dụng cũng sẽ không hiển thị trong menu "nhấn và thanh toán".

<uses-feature android:name="android.hardware.nfc.hce" android:required="true" /> 
<uses-permission android:name="android.permission.NFC" /> 
Các vấn đề liên quan