#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. Большое вам спасибо, мистер Мумтаз