Contactless Wiki

How to configure an Android device to read Google Wallet Smart Tap passes


This article will demonstrate how to edit & install an app to allow reading of Google Wallet Smart Tap passes on an Android device.

Materials Used

Step 1

Clone this GitHub repository in Android Studio.

Step 2

Navigate to java/com/google/smarttapsample/NegotiateCryptoCommand.java and begin editing the LONG_TERM_PRIVATE_KEY and COLLECTOR_ID fields.

Notice

Collector ID is supposed to be formatted into hexadecimal and then further seperated into bytes. If it is not, use the Windows Calculator app in programming mode. For instance, if your ID were "20180608," it would become "133EE80." In the code of the project, this becomes new byte[]{(byte) 0x01, (byte) 0x33, (byte) 0xEE, (byte) 0x80};.

Don't have a Collector ID or Private Key? Learn more about them here.

Step 3a

Run this program on the Android device you wish to read passes from. This can either be done via Wi-Fi or USB.

Step 3b

Build the APK and install on device you wish to read passes from. You may get a Play Protect dialogue that the author of the program is unrecognized. Press the "Details" text on this dialogue and press "Install anyway."

Step 4

Add the pass you wish to read to the Google Wallet on the Android device you wish to transmit the pass from.

Step 5

Tap away! Hold the backs of the devices to each other. The device assigned as the reader must be open to the "Google Wallet Smart Tap Sample App." The device assigned as the transmitter can be on any screen, even the lock screen. So long as the device's display is illuminated (Always On Display does not count.)


This tutorial was last updated on