Вы не можете прочитать карту с помощью Nexus S при использовании Open NFC. По крайней мере, пока.
Открытый стек NFC не зависит от оборудования и использует уровень абстракции, называемый HAL. Единственные доступные HAL для Open NFC предназначены для аппаратного обеспечения Inside Secure, тогда как Nexus S использует аппаратное обеспечение NXP.
Вы не пишете, какую карту вы пытаетесь прочитать, но, вероятно, это достижимо с помощью API Android. Помимо прочего, я мог читать и писать на карту MIFARE.
Вам необходимо отфильтровать обнаруженную технологию
<tech>android.nfc.tech.MifareClassic</tech>
<tech>android.nfc.tech.MifareUltralight</tech>
затем в методе onNewIntent
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
MifareClassic clas = MifareClassic.get(tagFromIntent);
try
{
clas.connect();
if (!DefaultAuthenticate(clas))
throw new Exception("Unable to authenticate using default key");
String myData = new String(clas.readBlock(clas
.sectorToBlock(MY_DATA_SECTOR)), "US-ASCII");
clas.close();
} catch (Exception ex)
{
ShowMessage(ex.getMessage());
}
DefaultAnthenticate - мой метод аутентификации с использованием ключей MIFARE по умолчанию:
private Boolean DefaultAuthenticate(MifareClassic clas) throws IOException
{
Boolean result = false;
result = clas.authenticateSectorWithKeyA(MY_DATA_SECTOR,
MifareClassic.KEY_DEFAULT);
result = result
&& clas.authenticateSectorWithKeyB(MY_DATA_SECTOR,
MifareClassic.KEY_DEFAULT);
return result;
}
Код может использовать некоторый рефакторинг, и он немного расколот, но я думаю, что он показывает, что происходит. Я надеюсь, что это поможет вам в вашем поиске - я предлагаю посетить http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html