GithubHelp home page GithubHelp logo

tanguycoenen / external-nfc-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from skjolber/external-nfc-api

0.0 1.0 0.0 1.17 MB

API for interaction with the External NFC Service app found in google play

License: Apache License 2.0

Java 98.87% HTML 1.13%

external-nfc-api's Introduction

External NFC Service API (native style) for Android

This API is for interacting with the External NFC Service app found in Google Play.

Background

The External NFC Service app offers NFC functionality similar to the built-in Android NFC API - for external NFC readers:

  • External NFC reader management and interaction
  • NFC Tag access using Andriod built-in (native) types (Ndef, MifareUltralight, IsoDep, etc).

This very much simplifies implementation in use-cases where external NFC readers is required, so it will save a lot of development time.

Overview

This repository contains source code for

There is also a Host Card Emulation client app for use with the Basic client app.

API

The API defines

  • broadcast actions
  • service start / stop and status
  • reader open / close and status
  • tag connect / disconnect
  • 'extras' objects for interaction with readers
  • disable beeps
  • display text
  • configure NFC tech types (PICC)
  • enable/disable LEDs
  • run custom commands
  • abstract activities for interaction with built-in and external NFC (in parallel)
  • these currently depend on the NDEF Tools for Android project.
  • Programmatically start and stop the service (see methods startService() and stopService() in the NfcExternalDetectorActivity class in for an example).

Note that tag interaction is performed via the native NFC classes and so these are not included in the API itself.

Supported readers

Currently the ACS readers

are supported and must be connected to your Android device via an On-The-Go (OTG) USB cable.

Supported tag technology

Mifare Ultralight and Mifare Classic (including NTAG203, NTAG213) tags are supported. I recommend Mifare Ultralights / NTAG203. Desfire EV1 tags are supported but without NDEF support. Host card emulation (IsoDep) targets are also supported.

Please note:

  • ACR 122U the Mifare Classic does not work.

Troubleshooting

Note that not all Android devices actually have an USB hub.

Does the ACR reader not light up when connected to your device, even after the service asks for USB permissions? The ACR reader shuts down if there is not enough battery, so try charging your battery more.

Please report any issues to [email protected].

Related apps

You might be interested in

for configuration of your reader. Approximately the same configuration options are available using this API.

Feature requests

Please email feature requests to [email protected].

Distribution

Get in touch for bulk and/or offline distribution. A library jar is also available, simplifying distribution of your own app(s).

Need help?

If you need professional assistance with an NFC project, get in touch. I also do

  • Host Card Emulation (HCE) for Android
  • Desfire EV1 tech (with encryption)
  • Smartcard-related workflows and integrations
  • Tag emulation

Feel free to connect with me on LinkedIn.

external-nfc-api's People

Contributors

skjolber avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.