diff --git a/core/java/android/nfc/INfcAdapter.aidl b/core/java/android/nfc/INfcAdapter.aidl index 53e87a6f2656e..541b700b43298 100644 --- a/core/java/android/nfc/INfcAdapter.aidl +++ b/core/java/android/nfc/INfcAdapter.aidl @@ -18,6 +18,7 @@ package android.nfc; import android.app.PendingIntent; import android.content.IntentFilter; +import android.nfc.BeamShareData; import android.nfc.NdefMessage; import android.nfc.Tag; import android.nfc.TechListParcel; @@ -47,7 +48,8 @@ interface INfcAdapter void setForegroundDispatch(in PendingIntent intent, in IntentFilter[] filters, in TechListParcel techLists); void setAppCallback(in IAppCallback callback); - void invokeBeam(); + oneway void invokeBeam(); + oneway void invokeBeamInternal(in BeamShareData shareData); void dispatch(in Tag tag); diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index be098a8ae3921..b0397d5a6981a 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -29,6 +29,7 @@ import android.content.IntentFilter; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.net.Uri; +import android.nfc.BeamShareData; import android.nfc.tech.MifareClassic; import android.nfc.tech.Ndef; import android.nfc.tech.NfcA; @@ -1273,6 +1274,21 @@ public final class NfcAdapter { } } + /** + * @hide + */ + public boolean invokeBeam(BeamShareData shareData) { + try { + Log.e(TAG, "invokeBeamInternal()"); + sService.invokeBeamInternal(shareData); + return true; + } catch (RemoteException e) { + Log.e(TAG, "invokeBeam: NFC process has died."); + attemptDeadServiceRecovery(e); + return false; + } + } + /** * Enable NDEF message push over NFC while this Activity is in the foreground. *