2015-05-12 2 views
0

Я создаю приложение для Android, используя Eclipse и Android SDK. Я хотел бы реализовать функцию NFC P2P в своем приложении в том смысле, что, когда вы помещаете два телефона назад, оба отправляют строку и получают строку автоматически. Это, конечно же, произойдет в отдельной деятельности. Мне удалось отправить собственный тег (String), но он не смог его перехватить и впоследствии использовать в коде приложения. Как я могу это сделать?NFC P2P tag intercept

Это то, что я до сих пор:

public class MainActivity extends Activity { 

public NfcAdapter mAdapter; 
PendingIntent mPendingIntent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    mAdapter = NfcAdapter.getDefaultAdapter(this); 

    NdefRecord rec = NdefRecord.createUri("www.stackoverflow.com"); 
    NdefMessage ndef = new NdefMessage(rec); 

    mAdapter.setNdefPushMessage(ndef, this); 
} 

Я потратил много времени, пытаясь найти и понять решения для перехвата тега. Неудачно.

Благодарим за помощь.

ответ

0

Вы можете использовать передний план системы диспетчеризации, чтобы получить сообщение ЦНК в вашей деятельности:

  1. В onResume():

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); 
    NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); 
    nfcAdapter.enableForegroundDispatch(this, pendingIntent, null, null); 
    
  2. ли что-то при получении намерения:

    public void onNewIntent(Intent intent) { 
        ... 
    } 
    

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

  • Нет связанных вопросов^_^