I am currently involved in a project in which I need to communicate using NFC but I'm stuck. The devices are a ACR122s kit and a Galaxy Nexus ( ICS 4.0.4.). After a long search I had selected the ISMB-SNEP library (http://code.google.com/p/ismb-snep-java/) under Windows but I cannot manage to get the sample code to recognize the ACR reader/writer. The software included in the ACR product box does recognize the reader/writer though.
Is there any way to get ISMB-SNEP library to work correctly with ACR122s?
Should I pick another (more suitable?) library?
Would you recommend me to get another NFC reader/writer?
Has anyone made any reader/writer successfully exchange information with an Android ICS phone in p2p mode?
Thank you.
If you're willing to use a different reader, like the idChamp, you could use SerialMagic Gears.
Actually it's reading your machine, but it will give you a message something like
machine can not be read/not supported/ .. etc
Because of a small issue in the code, the code checks if there's a card being scanned right now. If not it will throw an exception which doesn't make sense.
Fix where the exception is being thrown and it shall work fine.
Related
Their website documentation stated that operation is not guaranteed. Was there a known instance that it did work or not? I've seen this product works in IOS Bluetooth and Bluetooth is supposed to be product agnostic. So I don't understand why operation is not guaranteed.
I got the below information from a friend:
Well, it seems the keyboard supports Android just fine.
From this(https://www.amazon.com/product-reviews/B01IP4ENCS) page: "I
held off buying this keyboard for a long time because I read comments
that said it did not work with Android. But that is not correct (at
least in 2019) ... the keyboard works just fine with Android over
Bluetooth. I tested with Android 8 and up, using the app FluidSynth
(which allows you to use downloadable sf2 soundfont files).
The only tip: you must connect to LE Bluetooth from inside the
Fluidsynth app, not from Android's system."
And this(https://pianopenguin.net/best-bluetooth-midi-keyboard/) page:
"This simply means that you can connect it with any Mac, Android or
Windows device that uses Bluetooth."
Therefore, this proves enough that the Korg microKEY Air does work on Android Bluetooth.
I have an android phone (nexus s, sdk v15) which shall send a string to a development board running in nfc-reader/writer-mode by using tag-emulation. I know this is not officially supported by android, so I could do it natively by accessing the driver directly(?).
Is there any example out there where anyone has done this before or an app which does this (and preferably is open source?)
I found some stuff on google where it is generally advised not to do this, or where people talk about how it would be possible or how they've (very generally) done it, but I couldn't find any code or precise advice.
I don't want to access the secure element or do any smartcard stuff that needs to be approved by the vendor/provider. I just want to transfer the string. I also know this could be done by the android api methods via p2p, but this doesn't work well with the board, so I give this approach a try.
For a device running stock KitKat 4.4
With Android KitKat 4.4 the ability to have the phone act as an NFC card is built into the operating system so you no longer have to rely on Cyanogenmod or a custom ROM. It won't let the phone act as a Mifare Classic tag per se but I've had great results in getting my phone to communicate with an ACR122 reader so I'd definitely recommend this option if you can get 4.4 on your device.
If you're wanting to run below 4.4 and are willing to use Cyanogenmod
It is possible to load applications onto your device and have them communicate with a reader via NFC quite easily however you must be running Cyanogenmod, this feature is present from CM 9.1.
Wanting to run on Gingerbread (the old answer)
Yes it is possible and there's been a patch put out there for 2.3.4 to enable it, I'll post a few links for you to have a read of.
They do require flashing a 2.3.4 Gingerbread ROM to your device along with some other patches to enable the card emulation features so if you're not willing to do that then they won't be of much use but as far as I'm aware it's the only way to get it working. I haven't actually tested this myself but user comments suggest it works.
Here is a link to a blog describing the whole process: http://techshek4u.blogspot.co.uk/2012/01/applying-card-emulation-patch-to_03.html
Here is a link to the original forum post with the patch for 2.3.4 to enable it:
http://forum.xda-developers.com/showthread.php?t=1281946
And a link to the original discussion where various developers are trying to get it working, depending on your technical knowledge of Android and NFC this could be more or less interesting: https://groups.google.com/forum/#!msg/android-developers/1fw1qfFqpGc/6dlzvTqExN4J
Caution: According to NFCGuy from his answer "Don't bother with downgrading your phone to GB if it is running ICS. You cannot downgrade the NFC firmware to be compatible again with GB, so NFC will simply not work if you flash your device with GB."
If you root your device, it is possible to create an app that turns on the card emulation mode. It is not too difficult, see e.g. https://stackoverflow.com/a/10506299/1202968.
However, card emulation is completely handled by the Secure Element. Your app has no access to the data that is being transferred. The only way to get control over that would be to create and install a Java Card applet on the Secure Element. However, to be able to do that you need acces to secret authentication keys that are only known to Google.
PS: Don't bother with downgrading your phone to GB if it is running ICS. You cannot downgrade the NFC firmware to be compatible again with GB, so NFC will simply not work if you flash your device with GB.
Host card emulation is now officially supported by Android, according to http://developer.android.com/guide/topics/connectivity/nfc/hce.html
I´ve been reading a lot about NFC, card emulation and etc.... I found two very helpful posts about this issue:
Android and Symbian NFC mobile development questions and answers (FAQ)
http://forum.xda-developers.com/showthread.php?t=1281946
Reading them I realized that it is quite complicated to write an application to make a payment.
Since I just want to see "something" working I'd like to ask the more experienced people if using the patch provided at xda-developers forum (second link above) would be enough just to write an appication that would open some door ou register/authorize someone´s entrance at an event (provided that I have a NFC device to properly interact with my phone, of course).
Thank you all
Payment is mostly impossible since you don't have the keys for the JavaCard card manager, better forget about it. Additionally, to write a Visa, etc compatible payment applet, you
need access to their specs, which means signing NDAs, paying money, etc.
Apparently the Mifare chip has stock keys, so you can modify it. So if you have a reader, and a device (door, etc.) that uses Mifare cards, you might be able to get it work. The thread also mentions that you might be able to clone your transport card. But:
you need to build your own firmware and flash it on a rooted phone
you may need to port the patches to whatever is the current GB version (2.3.7) or use exactly the same (old) tag
You need to do a lot more reading :)
In my opinion, you shouldn't bother with trying the patches on XDA Developers, especially if you are considering using Android 4.0 ICS. Android 4.0 already has built-in functionality on the Nexus S and Galaxy Nexus phones to enable card emulation. Drawback: you need a rooted phone to make it all work (see e.g. How to obtain NFCEE_ADMIN permission on rooted phone? for an example of someone succeeding).
A perhaps simpler approach is using NFC peer-to-peer communication ("Android Beam") with an external reader. This can work with any Android NFC device using a simple app to push the necessary data to the reader. Provided the reader support peer-to-peer communication, this is far the easiest solution. It would require some development work on the reader side, though, see http://code.google.com/p/ismb-npp-java/wiki/NppFromPhoneToACR122 for an example of this approach.
I've been developping a small game on symbian and android that sends messages using NFC.
I tried using many protocoles but still haven't been able to send even a small string (either via p2p or via tag detection) from the C7 to the nexus.
Can anyone tell me which protocole i should be using ?
Where could i find an example if such an example exists ?
Is it even possible to make the two interact ?
Thanks in advance and sorry if my english is a bit rusty.
You probably should first take a look at existing NFC examples from Android and Nokia.
For example, Android has Beam Demo application - http://developer.android.com/resources/samples/AndroidBeamDemo/index.html and Nokia has NFC Tag - http://library.developer.nokia.com/topic/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-DB3F8F61-CF5F-436F-9678-B5EADBB13999.html and NFC Share - http://library.developer.nokia.com/topic/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-5294D18E-E2BF-4723-BEFA-55C282F1F3DB.html example applications.
Try them first to check if they even can see and talk to each other.
According to Android Honeycomb it supports USB peripherals. I am interested in connecting a credit card reader with usb and another device. My questions are the following:
Will the Android device support a USB Hub?
How can I program to the credit card device? What would i need to ask for the development of lets say a Magtek Credit Card Reader?
If anyone can help me I would greatly appreciate it.
Thanks!
MagTek provides an Android development kit for SCRA card readers on their support site. It includes guidance, sample code and their custom library. You should use this as a starting point. You will need a usb capable Android device to test the sample code. However, to begin with, you may want to use the Android emulator for running the software until you get your build working. If you try to use the sample code with the emulator, you will have to remove calls to the library or you will see application errors. If you need help using the emulator, I have a post on my blog which explains it here: http://www.veriserver.net/cgi/tech/?p=39
The following is what the MagTek demo program will look like on the Android 4.0 emulator if you get that far:
Once you get this far, you will be ready to load the sample program on an Android device and try it with a MagTek card reader.
Android 3.0 + supports Android USB Host and Accessory APIs.
Question is too generic to answer in this post.
Please refer to the documentation here