Ich implementiere die NFC in Android-Projekt. Ich habe die Einträge geschrieben, die in der AndroidManifest.xml und Java-Code erforderlich sind.Methode onNewIntent (Absicht) nicht in NFC ausgeführt
Wenn ein Tag in die Nähe des Geräts kommt, erkennt meine App das Tag, dann öffnet es die Aktivität, aber hier bekomme ich NFC Tag Info, aber onNewIntent
wird nicht ausgeführt.
Bitte teilen Sie Ihre Ansichten.
public class NFCActivity extends Activity {
private NfcAdapter mNFCAdapter;
private PendingIntent mNfcPendingIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nfc);
// Create the OpenSqliteHelper object. It always best to create only
// once instance of this OpenSqliteHelper
DatabaseManager.init(this);
mNFCAdapter = NfcAdapter.getDefaultAdapter(this);
if (mNFCAdapter == null) {
// Device does not support NFC
Toast.makeText(this,
getString(R.string.device_does_not_support_nfc),
Toast.LENGTH_LONG).show();
} else {
if (!mNFCAdapter.isEnabled()) {
// NFC is disabled
Toast.makeText(this, getString(R.string.enable_nfc),
Toast.LENGTH_LONG).show();
} else {
mNfcPendingIntent = PendingIntent.getActivity(NFCActivity.this,
0, new Intent(NFCActivity.this, NFCActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
}
}
finish();
}
@Override
protected void onNewIntent(Intent intent) {
Tag mTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
}
@Override
protected void onPause() {
super.onPause();
mNFCAdapter.disableForegroundDispatch(this);
}
@Override
public void onResume() {
super.onResume();
mNFCAdapter.enableForegroundDispatch(this, mNfcPendingIntent, null,
null);
}
}
AndroidManifest.xml
<activity
android:name="net.livepatrols.thepartnerSA.NFCActivity"
android:theme="@android:style/Theme.NoDisplay" >
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Versuch in Aktivitäts-Tag android Zugabe: launchMode = "SingleInstance" oder android: launchMode = "singleTop", wenn Ausgabe onNewIntent verwandt ist, es wird – TheLittleNaruto
lösen Es ist bereits singleTop '.addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP) , 0); 'hier –
kurze Version ist - setzen Sie die einzige obere Flagge in der Absicht und im Manifest. [Referenz] (http://stackoverflow.com/questions/4020909/bug-onnewintent-not-called-for-selletop-activity-with-intent-flag-activity-new) – TheLittleNaruto