intent.getParcelableExtra (NfcAdapter. EXTRA_TAG.EXTRA_TAG) возвращает значение null

#android #android-intent

#Android #android-intent

Вопрос:

У меня есть Деятельность1. Я хочу вызвать метод resolveIntent в классе из Activity1 . когда я нажимаю на кнопку в activity1, выполняется этот код:

         Intent IntObj=new Intent();
         IntObj.setAction(NfcAdapter.ACTION_TECH_DISCOVERED);                                                                                                                                                          IntObjputExtra(NfcAdapter.EXTRA_TAG,getIntent().getParcelableExtra
        (NfcAdapter.EXTRA_TAG));
            appletcommunication appletclass=new appletcommunication(IntObj);
         if(!appletclass.ReadyConnection)
               return;//nfc communication not erady
  

в классе I есть такой код

    public class appletcommunication {

private static final String TAG = null;
//private NfcAdapter mAdapter = null;
static IsoDep myTag;
static  byte AppletCLA=(byte)0x00;
public  static boolean ReadyConnection;


public appletcommunication(Intent intent) {
    resolveIntent( intent);
}


    public  Boolean resolveIntent(Intent intent)
{
 Boolean bresult=true;


     String action = intent.getAction();

      if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action) || NfcAdapter.ACTION_TECH_DISCOVERED.equals(action) || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action))
      {
        Parcelable tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        final Tag t = (Tag) tag;
        myTag = IsoDep.get(t);

        if (myTag != null) 
        {
           if (!myTag.isConnected()) 
           {
               try {
                   myTag.connect();
                   myTag.setTimeout(5000);
                    } 
               catch (IOException e)
                  {
                   e.printStackTrace();
                   bresult=false;
                  }
          }
          if (myTag.isConnected()) 
          {
               String szATR = null;
               try {

                    szATR = "kkk";
                   } 
               catch (Exception e)
                  {

                   szATR = "CARD DETECTED  ";
                   bresult=false;
                  }
           }

     }
    else
      bresult=false;

      }
    else
         bresult=false;

      return bresu<

}
  

1-но в этой строке тег равен null.
Разделяемый тег = intent.getParcelableExtra(NfcAdapter. EXTRA_TAG.EXTRA_TAG);

Заранее спасибо

Комментарии:

1. NFC на Android требует разрешения <uses-permission android:name="android.permission.NFC" /> Посмотрите, поможет ли это вам.

2. 1) если вы не задали действие для intObj в Activity1, то getAction() может возвращать значение null только в Activity2. 2) Извините, но я не понимаю, в чем вторая проблема. За исключением, может быть, того, что вам также нужно добавить дополнительные элементы для намерения в Activity1 самостоятельно, поэтому вам придется поместить Parcelable (некоторый класс, который реализует Parcelable) в качестве дополнительного

3. Я не знаю, как сгенерировать разделяемое значение для nfcadapter. EXTRA_TAG

Ответ №1:

Пожалуйста, получите справку по всем методам о getParcelableExtra по указанному ниже URL

http://www.codota.com/android/methods/android.content .Intent/getParcelableExtra

Комментарии:

1. Большое вам спасибо, мистер Мумтаз