Context
I have a Minix x88i Android computer (not relevant, but it's without internal NFC tech), connected to an external RFID reader (the ACR1252u from ACS). ACS provides an API for Android so I can communicate with my reader through my application. That works.
Goal
My goal is to be able to read ISO 14443 Type A cards ((Dutch) ID-cards and passports (aka ePassports)), and get the result in my application. The key to access these tags is the MRZ (Machine Readable Zone) visible on the ePassports, which can be hard-coded for now.
Problem
I'm a bit stuck on what my next step should be. I found the JMRTD API to help me access the ePassports, but I don't know how to use it after importing it in my application (mostly because I don't have a 'Tag' or 'Card' object or something). Applications I found using this either make use of importing javax.smartcardio.* or android.nfc.*, which both won't work in my Android application for a device without internal NFC.
Do I need to use JMRTD? No, if there are other libraries which do the same that I don't know about, please let me know!
You could help me by guiding me in the right direction on how to use JMRTD (or something else) for an Android application on a device without internal NFC, in combination with the ACR reader. A popular reader from them is the ACR122, if you have experience with that the chance is high that it will also apply for my reader! Or maybe you know of a project that does the same, so I can use that as a code example.
If I need to provide more information, please let me know. Thanks in advance!
Solved by extending the CardService class from SCUBA (dependecy from JMRTD) in my own class. Next I could create a PassportService from JMRTD, open it, select the application, perform authentication and read the data.
Related
I have Java application using Futronic FS80H.
Working successfully with one device.
But now i have 2 of them plugged in the same PC.
I want one to enroll, and the other must only read.
But i can't find a way to diferentiate them.
I'm using the SDK Worked Example for Windows, available at https://www.futronic-tech.com/download.php, and building my software upon that.
Can someone help me?
I got in touch with tech support via the email inquiry#futronic-tech.com.
Team futronic were very kind and supportive and helped me to accomplish the taks.
There's everything available in their dll api, and they sent me access to their ftp with Java code example to handle multiple FS80 readers plugged in the same PC.
I would like to thank team Futronic.
currently I am struggling with an interface between the ACR122 NFC Reader and java. What I am trying to achieve is to read a NFC-Tag and get the read value into a java variable. Sounds simpler than it is (for me).
What I do know by know are the bytes I have to send in order to read and write properly. So what I now need to know is how do I communicate with the device itself so i can send those commands (initialize, read/write, close connection)?
The manufacturer adds a interface written in C (or C++?). Unfortunately I only know Java so I would need a library I could use and some examples (and maybe some explanations). If someone would happen to know how to achieve my goal and going to explain to me how the process generally works, I would be very happy.
Some additional informations:
Operating System the programm should work on (Windows 7 64x)
The most recent JDK
The transfer and the stored data on the NFC-Tag doesn't have to be secure
If any information is needed, please don't hesitate to ask for it. I am glad for every bit that helps.
Let's say I have a USB magnetic card reader
(http://image.ec21.com/image/szttce09/oimg_GC03950917_CA03950946/Triple_Track_USB_Magnetic_Credit_Card_Reader.jpg)
I am running windows 10 on my machine. All I want to do is read data from the magnetic card and use that data in a java Application. How can I do this ? I heard the java communications api is suitable for what I want. How exactly do I use this api or any other api to read data from the card reader and show that data in my java application. Assume I have eclipse opened. Now what? Do I import the communications api ? If yes , what do I do next ? If you can give a simple example of how to do this it would be greatly appreciated.
The first thing to do is search the internet for a Java library, which allows you to communicate with that device. Put in the model and serial number, and see what comes up. If nothing comes up, and that is quite likely to happen, you will need to find the native driver, and wrap it in Java.
This is not normally a straight forward or easy process. When dealing with third party hardware, most vendors don't supply a little Java library that you can use. If you can find the native drivers, you can wrap them from C to Java, but you might not even be able to find the drivers at all.
Start by going to the manufacturer's page, and looking around. If you find the driver, great. If you find documentation for the driver, even better. You will need to read the documentation, and understand how to use the driver from C code, which implicitly requires you to have a basic understanding of C.
Then you will need to link it in to Java, using the Java Native Interface.
In Summary: If it didn't say "For Java developers" in the description when you bought it, you're going to have to do a lot of work just to get it usable in Java.
I am able to build the libjingle library and also build the AppRTCDemo App on Android. I am able to connect to peers and share audio and video successfully. Now I want to extend it to send data (say Text "HelloWorld"). I want to integrate DataChannel into it so that I can also send data through it.
I have few questions:
Is it possible to use DataChannel with native webrtc? I mean what I am trying to do is it supported ?
Is there any sample application or example that could solve this problem for me ?
Looking forwards for you support!
Yes it is supported. For more info about the exact interfaces take a look at
<libjingle-src>/talk/app/webrtc/java/src/org/webrtc/PeerConnection.java
<libjingle-src>/talk/app/webrtc/java/src/org/webrtc/DataChannel.java
As far as I know there isn't any examples
I tried looking at some posts already posted but it did not help me
What I want to do
Use an SDK (preferably in java) to use in my own application
Scan fingerprints and save them as an image format (bmp,jpg or other)
If possible count ridges of the fingerprint (but this is secondary)
I was looking into different vendors/sdk such as
Digitalpersona
Futronic
Griaulebiometrics -> Griaule AFIS Fingerprint
OpenCV
SourceAFIS
Does one have experience to use any or few of them and which one should I will be able to use for my purpose
I understand SDK may be vendor specific and will be used for their hardware only or is there any other way I can just scan fingerprint and store as images?
You'll need to clarify your requirements before someone can recommend the best SDK for what you want to do. I'm not quite current on opencv modules but that and SourceAFIS have the benefit of being free at any project scale. AFAIK all the others are provided basically on a trial basis by biometric vendors who will eventually want you to purchase a license for every end user.
That being said any biometric scanner vendor should provide you (for free) with device drivers to get an image from their scanner. Typically you'll have to modify some sample C code to do what you're talking about, and without JNI it will likely be impossible to get a scan directly into Java. In my experience it's pretty easy to use a vendor SDK to dump an image into a BMP, so you shouldn't be discouraged even if your C skills are minimal. Of the scanner companies you mention I know that the Futronics sample application is quite simple to adapt to the kind of image acquisition you're looking for, and their basic scanners are cheap and robust.