Получать уведомления при отправке NDEF / при нажатии на луч - PullRequest
0 голосов
/ 27 сентября 2018

Я использую setNdefPushMessageCallback для отправки сообщения NDEF (текстовое / обычное) через Android Beam (TM) с одного устройства Android на другое.В onResume я проверяю ACTION_NDEF_DISCOVERED, поэтому таким образом Android-телефон, который обнаруживает / получает сообщение, получает уведомление.

Но как я могу получить уведомление на другом телефоне (отправляющем сообщение)?)?Как мне кажется, должен быть способ определить, когда мы касаемся экрана, чтобы передать сообщение, но я не видел никаких констант на NfcAdapter, который вызывается для этой цели.

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    mAdapter.setNdefPushMessageCallback(this, this);
}

@Override
public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
    ...
    NdefRecord ndefRecord = NdefRecord.createMime("text/plain", message.getBytes());
    NdefMessage ndefMessage = new NdefMessage(ndefRecord);
    return ndefMessage;

}

@Override
protected void onResume(){
    super.onResume();

    Intent intent = getIntent();
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        NdefMessage message = (NdefMessage) rawMessages[0]; 
        status = new String(message.getRecords()[0].getPayload());
    }
    ...
}

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете зарегистрировать OnNdefPushCompleteCallback:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    mAdapter.setOnNdefPushCompleteCallback(this, this);
    mAdapter.setNdefPushMessageCallback(this, this);
}

@Override
public void onNdefPushComplete(NfcEvent event) {
    ...
}

Этот обратный вызов будет вызван, когда сообщение было успешно передано через Beam.

...