title: Android nfc to read card from samsung nexus
body: <p>I want to read a card from Samsung Nexus phone but the android nfc api does not provide enough options. i've also tried using a third party api names "open nfc" but the it gives error of not supporting the api. Can anyone provide me the code to read data from a card. I have the code to read a tag but not to read a card. Here is the link to download the open nfc api.</p>
  
  <p><a href="http://sourceforge.net/projects/open-nfc/files/Open%20NFC%204.3%20beta%20%2810381%29/" rel="nofollow">http://sourceforge.net/projects/open-nfc/files/Open%20NFC%204.3%20beta%20%2810381%29/</a></p>
  
  <p>Any help is appreciated.</p>
  
  <p>This is the code i used. Its giving an error of opennfc failing...</p>
  
  <pre><code>   public class NFCone  extends Activity implements CardDetectionEventHandler,     ReadCompletionEventHandler,NfcTagDetectionEventHandler{
  
  CardListenerRegistry i=null;
  CardDetectionEventHandler hand=null;
  NfcManager nfcMngr = null;
  NfcTagManager mNfcTagManager=null;
  NfcTagDetectionEventHandler tagHand=null;
  ReadCompletionEventHandler readHand=null;
  public void onCreate(Bundle savedInstanceState) 
  {
      super.onCreate(savedInstanceState);
  
      setContentView(R.layout.main1); 
      System.out.println("onCreate");
      try
      {
          nfcMngr.start();
          i.registerCardListener(NfcPriority.MAXIMUM, hand);
      }
      catch(Exception e)
      {
  
      }
  }
  protected void onResume() {
      // TODO Auto-generated method stub
  
      super.onResume();
      System.out.println("onResume");
  
      Toast.makeText(this, "NDEF reader Starting ... ", Toast.LENGTH_SHORT)
              .show();
      try{
      if (mNfcTagManager != null) {
  
          mNfcTagManager.registerTagListener(NfcPriority.MAXIMUM, tagHand);
          mNfcTagManager.registerMessageReader(NdefTypeNameFormat.WELL_KNOWN,
                  "U", NfcPriority.MINIMUM, this);
      }
      }
      catch(Exception e)
      {       }
      }
  protected void onPause() 
  {   
      super.onPause();
      System.out.println("onPause");
      mNfcTagManager.unregisterMessageReader(readHand);
      mNfcTagManager.unregisterTagListener(tagHand);
  
  }
  protected void onDestroy() 
  
  { 
      super.onDestroy();
      System.out.println("onDestroy");
      i.unregisterCardListener(hand);
      try{
      nfcMngr.stop();
      }
      catch(Exception e)
      {       }
  }
  public void onCardDetected(Connection connection) {
      System.out.println("onCardDetected");
  
      //ConnectionProperty[] con = connection.getProperties();
  
  }
  public void onCardDetectedError(NfcErrorCode what) {
      System.out.println("onCardDetectedError");
      // TODO Auto-generated method stub
  
  }
  private void startBrowserOn(String url) {
      System.out.println("startBrowserOn");
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
  }
  public void onReadError(NfcErrorCode what) {
      System.out.println("onReadError");
  }
  public void onTagRead(NdefMessage message) {
      {
          System.out.println("onTagRead");
          if (message != null) {
  
              Vector&lt;NdefRecord&gt; records = message.getRecords();
  
              for (int i = 0; i &lt; records.size(); i++) {
  
                  if (UriRecord.isUriRecord(records.elementAt(i))) {
  
                      UriRecord uri;
  
                      try {
                          try {
  
                              uri = new UriRecord(records.elementAt(i));
                              startBrowserOn(uri.getUri().toString());
                          } catch (NfcException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                          }
  
                      } catch (URISyntaxException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
  
                          Toast.makeText(this, "URISyntaxException! ",
                                  Toast.LENGTH_SHORT).show();
                      }
  
                      break;
                  }}}}
  }
      public void onTagDetected(NfcTagConnection connection) {
      System.out.println("onTagDetected");
  
  }
      public void onTagDetectedError(NfcErrorCode what) {
      System.out.println("onTagDetectedError");
  
  }
   }
  </code></pre>