TagTechnology
  public
  
  
  
  interface
  TagTechnology
  
  
      implements
      
        Closeable
      
  
  
| android.nfc.tech.TagTechnology | 
TagTechnology is an interface to a technology in a Tag.
 
 Obtain a TagTechnology implementation by calling the static method get()
 on the implementation class.
 
 NFC tags are based on a number of independently developed technologies and offer a
 wide range of capabilities. The
 TagTechnology implementations provide access to these different
 technologies and capabilities. Some sub-classes map to technology
 specification (for example NfcA, IsoDep, others map to
 pseudo-technologies or capabilities (for example Ndef, NdefFormatable).
 
 It is mandatory for all Android NFC devices to provide the following
 TagTechnology implementations.
 
- NfcA(also known as ISO 14443-3A)
- NfcB(also known as ISO 14443-3B)
- NfcF(also known as JIS 6319-4)
- NfcV(also known as ISO 15693)
- IsoDep
- Ndefon NFC Forum Type 1, Type 2, Type 3 or Type 4 compliant tags
TagTechnology implementations. If it is not provided, the
 Android device will never enumerate that class via Tag.getTechList.
 - MifareClassic
- MifareUltralight
- NfcBarcode
- NdefFormatablemust only be enumerated on tags for which this Android device is capable of formatting. Proprietary knowledge is often required to format a tag to make it NDEF compatible.
 TagTechnology implementations provide methods that fall into two classes:
 cached getters and I/O operations.
 
Cached getters
These methods (usually prefixed byget or is) return
 properties of the tag, as determined at discovery time. These methods will never
 block or cause RF activity, and do not require connect() to have been called.
 They also never update, for example if a property is changed by an I/O operation with a tag
 then the cached getter will still return the result from tag discovery time.
 I/O operations
I/O operations may require RF activity, and may block. They have the following semantics.- connect()must be called before using any other I/O operation.
- close()must be called after completing I/O operations with a- TagTechnology, and it will cancel all other blocked I/O operations on other threads (including- connect()with- IOException.
- Only one TagTechnologycan be connected at a time. Other calls toconnect()will returnIOException.
- I/O operations may block, and should never be called on the main application thread.
Note: Methods that perform I/O operations
 require the Manifest.permission.NFC permission.
Summary
| Public methods | |
|---|---|
| 
        abstract
        
        
        
        
        void | 
      close()
      Disable I/O operations to the tag from this  | 
| 
        abstract
        
        
        
        
        void | 
      connect()
      Enable I/O operations to the tag from this  | 
| 
        abstract
        
        
        
        
        Tag | 
      getTag()
      Get the  | 
| 
        abstract
        
        
        
        
        boolean | 
      isConnected()
      Helper to indicate if I/O operations should be possible. | 
| Inherited methods | |
|---|---|
Public methods
close
public abstract void close ()
Disable I/O operations to the tag from this TagTechnology object, and release resources.
 
Also causes all blocked I/O operations on other thread to be canceled and
 return with IOException.
 
Requires the Manifest.permission.NFC permission.
| Throws | |
|---|---|
| SecurityException | if the tag object is reused after the tag has left the field | 
| IOException | |
See also:
connect
public abstract void connect ()
Enable I/O operations to the tag from this TagTechnology object.
 
May cause RF activity and may block. Must not be called
 from the main application thread. A blocked call will be canceled with
 IOException by calling close() from another thread.
 
Only one TagTechnology object can be connected to a Tag at a time.
 
Applications must call close() when I/O operations are complete.
 
Requires the Manifest.permission.NFC permission.
| Throws | |
|---|---|
|  | if the tag leaves the field | 
| IOException | if there is an I/O failure, or connect is canceled | 
| SecurityException | if the tag object is reused after the tag has left the field | 
See also:
getTag
public abstract Tag getTag ()
Get the Tag object backing this TagTechnology object.
| Returns | |
|---|---|
| Tag | the Tagbacking thisTagTechnologyobject. | 
isConnected
public abstract boolean isConnected ()
Helper to indicate if I/O operations should be possible.
Returns true if connect() has completed, and close() has not been
 called, and the Tag is not known to be out of range.
 
Does not cause RF activity, and does not block.
| Returns | |
|---|---|
| boolean | true if I/O operations should be possible | 
