Я работаю над NFC-приложением. Чтобы запустить приложение, я использую NDEF-тег с записью AAR NDEF внутри.Android/NFC: получить тег в onCreate() без нового намерения
Это прекрасно работает. Но теперь я хочу напрямую прочитать содержимое тега с помощью приложения. Как я могу это сделать?
(. Он уже работает, когда я удалить тег из телефона и прикоснуться к ней снова, но я хочу, чтобы устранить этот шаг)
Update: Некоторые подробности Ok, чтобы сделать его более ясным , вот некоторые части моего текущего кода.
private NfcAdapter nfcAdapter;
private static final int PENDING_INTENT_TECH_DISCOVERED = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_l);
text_output = (TextView) findViewById(R.id.textView2);
NfcAdapter adapter = ((NfcManager) getSystemService(Context.NFC_SERVICE))
.getDefaultAdapter();
}
@Override
public void onResume() {
super.onResume();
nfcAdapter = ((NfcManager) this.getSystemService(Context.NFC_SERVICE))
.getDefaultAdapter();
PendingIntent pi = createPendingResult(PENDING_INTENT_TECH_DISCOVERED,
new Intent(), 0);
nfcAdapter.enableForegroundDispatch(this, pi,
new IntentFilter[] { new IntentFilter(
NfcAdapter.ACTION_TECH_DISCOVERED) }, new String[][] {
new String[] { "android.nfc.tech.NdefFormatable" },
new String[] { "android.nfc.tech.Ndef" } });
}
@Override
public void onPause() {
super.onPause();
nfcAdapter.disableForegroundDispatch(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
final Intent data) {
switch (requestCode) {
case PENDING_INTENT_TECH_DISCOVERED:
Runnable runnable = new Runnable() {
@Override
public void run() {
doTagOperation(data);
}
};
new Thread(runnable).start();
break;
}
}
private void doTagOperation(Intent data) {
try {
String action = data.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
Tag tag = data.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Ndef ndefTag = Ndef.get(tag);
}
} catch (Exception ex) {
...
}
}
Чтобы запустить приложение я использую AAR-ЦНК-запись на бирке, которая может быть создана таким образом: NdefRecord NDR = NdefRecord.createApplicationRecord ("com.example.something");
Так что я хочу: коснитесь тега, когда приложение не запущено, приложение начинает (работает уже), а затем оно должно непосредственно читать тег без необходимости отводить телефон от тега и снова коснуться его ,
Было бы полезно, если бы вы разместили часть своего текущего кода, возможно, метод ** onCreate() **, который, как вы говорите, уже работает. Спасибо – brwngrldev