2012-01-30 5 views
2

В настоящее время я пишу приложение, которое использует NFC для отправки текста между двумя устройствами. У меня есть два телефона Nexus S, один работает сэндвич с мороженым и один работает Gingerbread 2.3.6.Android NFC Gingerbread для ICS NDEF Push not working

Программа выталкивает сообщение ЦНК, правильно сформированный с помощью кода примера Google, на передний план в ожидании быть подобран, что маленький фрагмент кода здесь:

/** 
    * Push an NDEF to the foreground with the given text. 
    * @param message The text to be put in the message that will be pushed. 
    * 
    */ 
public void pushNDEFwithText(String text) 
{ 
    NdefRecord ndefRec = createTextRecord(text, Locale.ENGLISH, true); 
    NdefMessage message = new NdefMessage(new NdefRecord[]{ ndefRec }); 
    nfcAdapter.enableForegroundNdefPush(this, message); 
    Log.i("NDEF", "Pushed an NDEF message containing the text: "+text); 
} 

Программа отлично работает, когда у меня есть Gingerbread Nexus нажимает тег на передний план, ICS выбирает его хорошо, и я в настоящее время использую NFCTagInfo для его чтения.

ПРОБЛЕМА: Когда у меня есть ICS Nexus, нажмите тег на передний план, который, кажется, не забирает его. Я думаю, что я столкнулся с некоторой проблемой из-за того, что ICS использует SNEP, а Gingerbread использует АЭС, есть ли способ заставить ICS использовать АЭС? Или, если кто-то думает, что это не проблема, что это может быть?

NB. В идеале я бы просто хотел использовать ICS исключительно, но Google перестала выставлять его из-за ошибок из-за ошибок, и поскольку обновление ICS нарушило USB-отладку на Nexus, мне нужно установить тестовые приложения через Интернет и отладить, посмотрев на журнал на устройстве, не идеальный, поэтому я просто разрабатываю для Gingerbread. Вот почему я не могу отправить копию журнала с ICS, но вот Gingerbread один из когда NDEF находится в ICS переднем плане и пряник получает (там, где это не работает):

01-30 16:09:59.343: D/NFC JNI(197): Discovered P2P Target 
01-30 16:09:59.343: D/NfcService(197): LLCP Activation message 
01-30 16:09:59.394: I/NFC JNI(197): LLCP Link activated (LTO=150, MIU=128, OPTION=0x00, WKS=0x01) 
01-30 16:09:59.414: D/NdefPushClient(197): LLCP connection up and running 
01-30 16:09:59.417: D/NdefPushClient(197): no tags set, bailing 
01-30 16:10:00.160: I/NFC JNI(197): LLCP Link deactivated 
01-30 16:10:00.160: D/NfcService(197): LLCP Link Deactivated message. Restart polling loop. 
01-30 16:10:00.230: D/NFC JNI(197): Discovered P2P Target 
01-30 16:10:00.230: D/NfcService(197): LLCP Activation message 
01-30 16:10:00.304: I/NFC JNI(197): LLCP Link activated (LTO=150, MIU=128, OPTION=0x00, WKS=0x01) 
01-30 16:10:00.320: D/NdefPushClient(197): LLCP connection up and running 
01-30 16:10:00.324: D/NdefPushClient(197): no tags set, bailing 
01-30 16:10:05.621: I/NFC JNI(197): LLCP Link deactivated 

И вот это откуда он на переднем плане Gingerbread и ICS получает (это действительно работает):

01-30 16:18:54.058: I/ActivityManager(109): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.terminal/.TerminalActivity bnds=[5,231][115,349] } from pid 200 
01-30 16:18:54.093: I/NDEF(1314): Pushed an NDEF message containing the text: This is an example message! 
01-30 16:18:54.175: V/RenderScript_jni(200): surfaceDestroyed 
01-30 16:18:54.445: I/ActivityManager(109): Displayed com.terminal/.TerminalActivity: +360ms 
01-30 16:18:57.015: D/NfcService(197): NFC-EE routing OFF 
01-30 16:18:57.023: D/NfcService(197): NFC-C discovery ON 
01-30 16:18:57.375: D/NFC JNI(197): Discovered P2P Target 
01-30 16:18:57.375: D/NfcService(197): LLCP Activation message 
01-30 16:18:57.425: I/NFC JNI(197): LLCP Link activated (LTO=150, MIU=128, OPTION=0x00, WKS=0x01) 
01-30 16:18:57.445: D/NdefPushClient(197): LLCP connection up and running 
01-30 16:18:57.445: D/NdefPushClient(197): sending foreground 
01-30 16:18:57.449: D/NdefPushClient(197): about to create socket 
01-30 16:18:57.464: D/NdefPushClient(197): about to connect to service com.android.npp 
01-30 16:18:58.398: D/NdefPushClient(197): about to send a 44 byte message 
01-30 16:18:58.398: D/NdefPushClient(197): about to send a 44 byte packet 
01-30 16:18:58.476: D/NdefPushClient(197): about to close 
01-30 16:19:03.812: I/NFC JNI(197): LLCP Link deactivated 
01-30 16:19:03.812: D/NfcService(197): LLCP Link Deactivated message. Restart polling loop. 

ответ

0

вы используете луч? Я использовал nfcAdapter.setNdefPushMessageCallback(), чтобы нажимать мои сообщения, и, похоже, он работает нормально. Я смог нажать на это читателю ACR122, и я тоже могу получить сообщение. Я уверен, что вы видели учебники для разработчиков, но пример я использую в нижней части:

http://developer.android.com/guide/topics/nfc/nfc.html

+0

Я не думаю, что я был Beam повернулся, я «решить» его, получая другой телефон ICS. – Peanut

Смежные вопросы