Disable Android Beam for selected activities

3.2k views Asked by At

I'm working with NFC on Android, specifically with Android Beam. My question is: is it possible to disable Android Beam support for an activity?

This is what some system applications do, such as messaging: if another phone is put close, my phone vibrates but the "Touch to beam" screen doesn't appear and the other phone doesn't receive anything.

EDIT: Calling:

NfcAdapter.setNdefPushMessage(NdefMessage message, Activity activity, Activity... activities)

in onResume() with a null message should do the trick (the doc says: "Pass a null NDEF message to disable foreground NDEF push in the specified activities.") but it doesn't work.

Thanks

2

There are 2 answers

2
robertly On

There isn't a way to do this currently. Maybe you can provide a menu option to disable NFC in your app? Why do you want to do this, by the way?

EDIT:

Sorry, there is a way to do this. Call setNdefPushMessage() in the activities that you don't want to push anything with a null NDEF message. Let me know if that works.

0
tasomaniac On

When I do it like this, It works like a charm.

NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this); 
adapter.setNdefPushMessage(null, this, this);