As I understand NFC offers three modes of operations :
Reader/Writer mode :
Reading/Writing of/to NFC tags. (Coupons, SmartPoster tags)
Card Emulation mode (using the Secure Element):
Virtual cards are stored in Secure Element (PayWave, PayPass).
Peer-to-Peer mode:
Communication between two NFC enabled active devices used in contactless services ticketing, money transfers or lower security access control applications
more: About NFC
Is it possible to combine these modes, and have NFC transactions between two phones, one as an emulated card in a secure element and the second as the reader POS? all informations about the subject is appreciated
Thank you.
Yes, what you are after is possible. What you refer to as card emulation mode, is commonly associated with the term digital wallet. In this case, the phone behaves like an EMV enabled payment card and transmits the necessary signals using the phone's NFC hardware.
On the other end of the spectrum is a reader. This reader can be another phone, or can be a typical merchant terminal that you see in retail locations. As long as both parties implement the standards properly, the data exchange can occur.
The merchant terminals however typically have stronger range than the sensors found in phones, so a payment at a merchant terminal is a bit easier to execute. As new phones come out, they tend to have better NFC antennas embedded in them however (for example comparing Nexus S with S4), so hopefully this gap will close. The EMV standards dictate a 5cm range for a reader to be compliant, though I've stumbled across many readers that don't have that range.
As you have guessed probably, I'm familiar with this space. I'm a cofounder of Triangle.io and what we do is to allow you to use any Android device as a reader for free. You can learn more about our API at http://www.triangle.io if interested. To go back to the question on hand, you can use one phone in card emulation mode, and on the other, you can use our API to read the other phone's emulated card. The phone emulating the card needs to implement the EMV specifications properly.
Related
How to get the mobile number of current sim card in real device and how to read meassage from mobile .
I just want to read sim card number and messages of mobile.
Can you please let me know how to resolve it.
Mobile devices don't provide that information for security/privacy reasons. You can access it in some low level Android API's but since this isn't portable we don't expose that.
Notice that apps like whatsapp, uber, gettaxi etc. all ask you to type in your phone number then a verification code sent via an SMS. That's exactly what JAT (which was built with Codename One) does.
Our application must know the following properties of the SIM Card:
a. Retrieve the SIM number (MSISDN)
b. Does it support 2G?
c. Can receive and send SMS?
d. Can send and receive data?
e. Can send and receive voice calls?
Most of the issues we are facing is becouse we cannot pro-actively query these parameters. It will be great to be able to do so thru our application (Android and iOS)
Application is distributed worldwide and should be agnostic of carriers.
Thanks so much for your input!
Yaakov
The SIM card does not store a subscribers MSISDN. Yes, according to the SIM standards their is provision for an "EF_MSISDN" file on the SIM however 90% of the operators do not populate this file. So how does the network know my MSISDN? Your phone uses the IMSI (International Mobile Subscriber Identity) stored on the SIM in file (EF_IMSI). The network maintains a "mapping" of IMSI to MSISDN within its HLR (Home Location Register).
A SIM card does not send/receive SMSs it uses the capabilities of the device it is in.
The same goes for sending and receiving data.
All of the parameters you are asking for would be device capabilities. This question should maybe be tagged under the android/ios development sections. The capability is there to query the device for its current/supported network connections, its ability to send/receive data and SMSs and possibly even the subscribers MSISDN.
Basically you will not get the information you want from the SIM card, as the information is not there.
Does anybody know if Android phone's firmware has the option to boot from other media besides system on a chip? I assembled compatible ARM-machine code and placed it on an SD card and would like to know if it is possible to boot my small machine instructions this way.
Booting from a different medium in fact has nothing to do with android, but rather the primary and possibly secondary boot-loaders. Google doesn't mandate any particular booting arrangement, and its very much up to the phone vendor.
The TI OMAP family of SoCs has a ROM-based first stage boot-loader that can bring up the media card interface and boot from a FAT formatted media card - although the search order and availability of boot devices is controlled by pull-up resistors and your phone vendor might have disabled it. It is likely other families of SoCs have similar arrangements.
Even once you've got your code to boot the is the question of what to use as IO? Or did you intend to back to a replacement kernel?
I have an RFID tag that i use to access a building (3.2 GHz i think). I know i can program RFID tags with my galaxy nexus,but can i make my phone act as one (something like the google wallet nfc payment).
The card emulation mode is not available for the moment in the commercial releases of Android OS. The case of Google Wallet is special, because Google made this feature available only on for their application. There are other possibilities to emulate card, using SWP SIM-card secure element. This would mean that your phone should also support SWP cards. Or using Micro SD card secure element for card emulation, than you would need in the regular case also antenna extender.
Is it possible to connect a Bluetooth device to an unknown device? I thought all Bluetooth devices had to be paired with another Bluetooth device before they could be used together. Someone mentioned a possible application where a Bluetooth device (most likely a Windows Mobile phone as the iPhone SDK doesn't support Bluetooth connections) can be used to say read electric meters in a given area. I thought the phone would have to be paired with each meter before any other communication could take place. Is this correct? Can the phone receive arbitrary data from a Bluetooth provider before they are paired?
You don't have to have security set up (no pin code) so you could have a bluetooth device that is always discoverable and will always connect/pair. So this could be used for the 'read a meter' type application.
Also, in Bluetooth 2.1, you have Extended Inquiry data so you could get the meter reading by having the meter encode the reading into the Extended Inquiry response. Then you don't even have to connect/pair. Just have a device that does an inquiry and gets the data that way.
There are some new standards coming for BlueTooth for Low Energy devices that would basically act like sensors, which are specifically targeted at this type of application.
There is more info then you could possibly want at www.bluetooth.org
If you know the MAC address of a bluetooth device and it is connectable you can talk to it directly.