Skip to content

Instantly share code, notes, and snippets.

@miguelcardo
miguelcardo / service-description.java
Created September 3, 2015 10:01
Endpoint to serve a service description
// Endpoint for the service description.
get(new Route("/describe/:serviceId") {
@Override
public Object handle(Request request, Response response) {
String serviceId = request.params("serviceId");
System.out.println("DESCRIBE endpoint - ServiceID: " + serviceId);
JSONObject description = new JSONObject();
// verify the serviceId
if (serviceId.equals(Constants.invokeServiceId)){
@miguelcardo
miguelcardo / onActivityResult.java
Created December 22, 2014 16:44
Process result from installation
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SERVICE_DELIVERY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Log.i(TAG, "Cardlet installation returned SUCCESS");
mainMessage.setText(R.string.put_card);
installButton.setVisibility(View.GONE);
} else {
Log.i(TAG, "Cardlet installation returned FAILURE");
Toast.makeText(getApplicationContext(), getString(R.string.failure), Toast.LENGTH_LONG).show();
}
@miguelcardo
miguelcardo / installCardlet.java
Created December 22, 2014 16:42
Launch cardlet installation
protected void launchCardletInstallation() {
if (appInstalledOrNot(FIDESMO_APP)) {
try {
Intent intent = new Intent(SERVICE_DELIVERY_CARD_ACTION, Uri.parse(SERVICE_URI + APPLICATION_ID + "/" + SERVICE_ID));
startActivityForResult(intent, SERVICE_DELIVERY_REQUEST_CODE);
} catch (IllegalArgumentException e) {
Log.e(TAG, "Error when parsing URI");
}
} else {
notifyMustInstall();
@miguelcardo
miguelcardo / talkToCard.java
Last active August 29, 2015 14:11
Communicate with cardlet
protected void readCard(final IsoDep card) {
byte[] response = null;
try {
card.connect();
response = card.transceive(Utils.selectApdu(APPLICATION_ID));
card.close();
} catch (IOException e) {
Log.e(TAG, "Error reading card", e);
}
if (response != null && Arrays.equals(Utils.statusBytes(response), successfulApdu)) {
@miguelcardo
miguelcardo / getIsoTag.java
Created December 22, 2014 16:37
Get hold of an NFC card
public static IsoDep getIsoTag(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
if(tag != null) {
return IsoDep.get(tag);
} else {
return null;
}
}
@miguelcardo
miguelcardo / unregisterNfc.java
Created December 22, 2014 16:35
Unregister from NFC events
public static void disableForegroundDispatch(Activity activity, NfcAdapter adapter) {
adapter.disableForegroundDispatch(activity);
}
@miguelcardo
miguelcardo / registerNfc.java
Created December 22, 2014 16:33
Register to NFC event
public static void enableForegroundDispatch(Activity activity, NfcAdapter adapter) {
Intent intent = activity.getIntent();
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
if(adapter.isEnabled()) {
PendingIntent tagIntent = PendingIntent.getActivity(activity, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
IntentFilter iso = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
adapter.enableForegroundDispatch(activity, tagIntent, new IntentFilter[]{iso},
new String[][]{new String[]{IsoDep.class.getName()}});
}
}
@miguelcardo
miguelcardo / afterviews.java
Created December 22, 2014 16:31
Instantiate the NFC Adapter
@AfterViews
void setupNFC(){
mAdapter = NfcAdapter.getDefaultAdapter(this);
if (!mAdapter.isEnabled()) {
Log.i(TAG, "NFC is not enabled. This is an error");
showTurnNFCDialog();
}
}
@miguelcardo
miguelcardo / dependencies.gradle
Last active September 17, 2022 12:11
Dependencies in the Hello Fidesmo! app
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
}
}
import java.util.List;
import java.util.Arrays;
import java.lang.String;
import javax.smartcardio.*;
public class HelloFidesmoTest {
// don't forget to set the HELLO_FIDESMO_APPID environment variable with the AppID
// assigned by Fidesmo to your app in https://developer.fidesmo.com
public static String applicationId = System.getenv().get("HELLO_FIDESMO_APPID");
final private static String aidPrefix = "A00000061700";