2012-02-26 18 views
7

Ngay bây giờ tôi đang gặp Tablet có hệ điều hành Android 2.3.3 thay vì NFC điện thoại, vì vậy tôi cần phải kết nối đầu đọc thẻ bên ngoài để tablet.Please cho tôi biết là thẻ đọc tôi nên thích và bất kỳ trình điều khiển nào cần thiết để kết nối đầu đọc thẻ với máy tính bảng. Các thư viện NFC sẵn có hỗ trợ cho người đọc đó hay không? cảm ơn trước.Làm thế nào để kết nối bên ngoài NFC Card Reader để Tablet

Trả lời

9

Tôi đã tìm thấy câu trả lời, ACS hiện cung cấp thư viện android và ứng dụng mẫu cho độc giả của họ.Bạn có thể tìm thấy thư viện here và một số thông tin và video demo của người đọc được hỗ trợ Android là here.

Vấn đề duy nhất là thư viện Android ACS chỉ hỗ trợ Android 3.1 trở lên. hy vọng nó sẽ giúp bạn.

Nếu bạn vẫn còn thắc mắc, hãy hỏi ..

7

Việc xây dựng trong NFC thư viện trong Android 2.3 và 4.0 chỉ hỗ trợ chip NFC PN544 bởi NXP Semiconductors. Tôi không nghĩ rằng có bất kỳ độc giả thẻ trên thị trường sử dụng nó, vì chip này được thiết kế đặc biệt để sử dụng trong các thiết bị di động. Bạn có thể tìm thấy các triển khai thay thế của API NFC Android hỗ trợ các chip NFC khác.

Một vấn đề khác có thể là máy tính bảng có khả năng nhất không có các thư viện NFC cần cài đặt, bao gồm các dịch vụ hệ thống yêu cầu (NfcManager). Sau khi tất cả, máy tính bảng của bạn không có hỗ trợ NFC, do đó, nó không cần những thành phần phần mềm. Vì vậy, một hình ảnh hệ thống ROM mới sẽ phải được tạo cho máy tính bảng của bạn bao gồm các thành phần phần mềm này.

Việc sử dụng một trong nhiều trình đọc dành cho máy tính để bàn phổ biến có thể không thực sự khả thi. Tạo tất cả các phần mềm cần thiết để tích hợp nó vào Android không thực sự là một nhiệm vụ tầm thường. Nó có thể dễ dàng hơn để chỉ cần mua một điện thoại Android với NFC hoặc chờ đợi nếu một máy tính bảng Android với NFC đi ra.

+0

cảm ơn câu trả lời thông tin như vậy, tôi có đầu đọc NFC ACR122U. Có thể kết nối hoặc tương tác với trình đọc đó không? là có bất kỳ trình điều khiển hoặc SDK yêu cầu cho điều đó? –

+0

Vui lòng xem tại http://www.grundid.de/nfc/ và xem liệu điều đó có hữu ích cho bạn hay không. –

+0

tôi thấy liên kết đó. Không có thông tin nào liên quan đến kết nối đầu đọc NFC với máy tính bảng. Nó hiển thị cách tương tác hoặc kết nối điện thoại di động NFC với PC. Nhưng một điều tôi hiểu là chúng tôi có thể đọc hoặc ghi dữ liệu vào chip của điện thoại NFC. lần nữa. –

0

là video này câu trả lời cho vấn đề của bạn: http://www.youtube.com/watch?v=6Xe7Ux0cTuI "Chi phí thấp, đơn giản, Không tài xế - EM4100 hoặc Mifare RFID reader cho Ipad, Android và Windows"

PS: Tôi không làm việc để compagny này và không bao giờ thử giải pháp của họ.

2

Cả Froyo (phiên bản phút SDK hỗ trợ NFC) 2.3 hoặc Ice Cream Sandwich 4.0 tương thích với một loạt các chip.

Khi nhà sản xuất khởi chạy điện thoại mới với chip NFC khác là vì ai đó đã tạo trình điều khiển để sử dụng chip và giao diện đó với các lớp NFC của Android, cụ thể là lớp NfcManager và lớp NfcAdapter đại diện cho bộ điều hợp NFC cục bộ.

Kịch bản trường hợp tốt nhất, bạn có thể sử dụng NDK của Android để tạo các lớp C/C++ cấp thấp để giao tiếp bằng cách nào đó đầu đọc thẻ NFC bên ngoài với Android và sau đó thực hiện thêm lập trình tùy chỉnh với NDK để làm cho NfcAdapter trên SDK phát hiện nó ... và không có bảo đảm rằng bạn sẽ thành công.

Và ... nếu bạn đang nghĩ đến việc đi tới http://www.alibaba.com và nhập một máy tính bảng có đầu đọc NFC, hãy nghĩ hai lần vì những cái đó có thể không cho phép bạn làm tất cả những gì mà chip bán dẫn NXP thực hiện với Android Beam (TM) như Đọc/Ghi và hỗ trợ các hoạt động I/O khác nhau với NFC-A, B, F, V hoặc ISO-DEP.

Vì của thời gian của bạn (và bởi vì thời gian là tài sản quý giá nhất đối với bất cứ ai những ngày này). Tôi nghĩ rằng lựa chọn tốt nhất của bạn là để có được một vài điện thoại NFC như Galaxy Nexus S, DROID Razr, Xperia S, HTC Incredible, vv ... những người sẽ làm việc ngay ra khỏi hộp, đó là những gì chúng tôi đang làm.

2

Hey sachin, Vì thiết bị của bạn không có NFC, thiết bị sẽ không có đài NFC và do đó không thể kết nối (Đọc hoặc ghi) với thẻ NFC. Theo lib NFC, khi bạn cố gắng để có được NFCAdapter nó sẽ luôn luôn trở lại null. vì vậy bạn ít nhất cần một thiết bị Android được bật nfc cho bất kỳ thử nghiệm nào.

Trong dự án của tôi, chúng tôi sử dụng ACR122 đầu đọc thẻ thông minh sẽ được kết nối với một máy tính không android device.This đọc được sử dụng để đọc bất kỳ thẻ NFC.Một thiết bị Android được kích hoạt nfc sẽ hoạt động như một thẻ nfc trong chế độ mô phỏng thẻ.

Bây giờ phần tiếp theo của câu hỏi "Các thư viện NFC sẵn có hỗ trợ cho người đọc đó hay không".

để đầu đọc thẻ này có thể đọc giá trị thẻ.

0

Đây là một chủ đề hay. Tôi lặp lại những lo ngại của RacZo về việc hỗ trợ thư viện NFC trong máy tính bảng có nguồn gốc từ Alibaba. Vì các chipset NFC trong các thiết bị khác nhau và một số có tính năng không rõ ràng hoặc không hỗ trợ cho các hoạt động nhất định, bạn cần cẩn thận và thử nghiệm ứng dụng của mình trên các thiết bị đó trước.

Trình đọc ACS có thể là giải pháp hiệu quả về chi phí và có một số thư viện cũng như SDK hỗ trợ người lớn và được hỗ trợ tích hợp với Android. Nhược điểm của đầu đọc bên ngoài ACS là tuổi thọ pin. Vì nó độc quyền cổng USB và máy tính bảng Android sẽ không cho phép sạc qua cổng USB trong khi thiết bị ngoại vi được kết nối với cổng. Vì vậy, nếu ứng dụng của bạn là một loại ứng dụng kiosk hoặc tự phục vụ, điều này có thể là một vấn đề.

Có một bài đăng tốt here về các tùy chọn khác nhau của bạn khi đối mặt với thử thách này. Nếu không biết nhiều hơn về ứng dụng của bạn thì thật khó để đề xuất cách này hay cách khác.

0

Một chút trễ để trả lời ở đây, nhưng tôi đã thực sự cố gắng triển khai một đầu đọc NFC bên ngoài gần với NFC gốc nhất có thể.

Có thể thêm một dịch vụ bổ sung, nhưng việc khởi tạo NFC thông thường (NfcAdapter vv) sẽ không nhận thức được dịch vụ này, vì vậy nó sẽ phải được khởi tạo thêm.

Kết quả là không thể thay thế hoặc thêm dịch vụ NFC tích hợp trên ROM chứng khoán - theo cách 'thả-thay thế'.

Sử dụng lại một số lớp NFC gốc như Thẻ và IsoDep là có thể.

Tuy nhiên, với tư cách là nhà phát triển ứng dụng NFC, bạn thực sự không muốn có cùng chức năng từ dịch vụ bên ngoài như tích hợp sẵn. Đầu đọc bên ngoài có thể có nhiều chức năng hơn và ở mức tối thiểu bạn muốn biết đầu đọc có được cắm hay không.

Xem External NFC API để biết thêm thông tin (lưu ý: đây không phải là sản phẩm nguồn mở hoàn toàn).

1

Với một độc giả ACS NFC là nó có thể:

Here bạn có thể tìm thấy những tài liệu cho các thư viện và mã ví dụ. Tuy nhiên nó dường như không có một tùy chọn để ghi dữ liệu. Nếu bạn muốn ghi vào đầu đọc NFC, hãy sử dụng chức năng truyền để gửi mảng byte.

private static final byte READ = (byte) 0x30; 
private static final byte WRITE = (byte) 0xA2; 

Các byte này là byte đọc và ghi mặc định cho chức năng truyền.Các tài liệu đầy đủ các giao thức NFC mặc định có thể được tìm thấy here

dụ:

byte[] response = new byte[300]; 
     int responseLength; 
     try { 
      responseLength = mReader.transmit(slotNum, command, command.length, response, response.length); 
     } catch (ReaderException e) { 
      e.printStackTrace(); 
      return "executeCommand: error: " + e.getMessage(); 
     } 

Slotnum là số người đọc bạn muốn sử dụng. Nếu tôi đúng, điều này luôn luôn là 0 nếu bạn đang sử dụng một trình đọc/usbdevice.

dụ lệnh:

new byte[] command {(byte) WRITE, 0x04, 0x06, 0x0a, 0x00, 0x21} 

byte thứ hai là trang Địa chỉ để ghi vào. Trang 4 - 15 có thể ghi được (trang 0 và 1 là id, trang 2 là khóa và trang 3 là OTP. Tất cả đều là READ ONLY).

Read chức năng hoạt động tương tự như chức năng VIẾT chỉ gửi 3 lần một 0x00 trong mảng cho các thiết lập đọc đúng:

new byte[] command {(byte) READ, 0x04, 0x00, 0x00, 0x00} 

byte thứ hai là trang Địa chỉ để đọc.

Các vấn đề liên quan