Wahrscheinlich die beste Lösung wird mit NFC Vordergrund Dispatching. Das Deaktivieren des Intent-Filters in der Manifest-Datei kann jedoch mithilfe des Verzeichnisses <activity-alias>
element im Manifest erfolgen. Indem Sie den Intent-Filter in das Element <activity-alias>
anstelle des Elements <activity>
setzen, können Sie ihn in Ihrer App beliebig aktivieren und deaktivieren.
So nehme an, Sie in Ihrem Manifest haben:
PackageManager pkgMgr = getPackageManager();
ComponentName comp = new ComponentName("your.app.package", "your.app.package.yourActivityAlias");
pkgMgr.setComponentEnabledSetting(comp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
Bitte beachten Sie, dass die neue Einstellung wird erst wirksam:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.app.package">
...
<activity-alias android:name=".yourActivityAlias"
android:enabled="true" android:targetActivity=".yourActivity">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
....
</manifest>
Dann können Sie die <activity-alias>
von einer Aktivität in Ihrer Anwendung durch deaktivieren nach dem Neustart der App (Sie sollten also möglicherweise 0 anstelle von PackageManager.DONT_KILL_APP in Erwägung ziehen). Es kann auch eine Weile dauern, bis der Paketmanager die neue Einstellung aktiviert hat (hängt wahrscheinlich von der Verarbeitungsgeschwindigkeit des Geräts ab).
Nun bin ich mit Ihrem Code nur ... Ich implementierte dies in Anwendung Exit-Option ... aber dieser Code ist nicht den Anwendungsprozess zu stoppen ... Ich möchte die Anwendung zu stoppen ... – Siva
Call 'Finish () '... –
Ich habe das auch benutzt, aber die Anwendung stoppt nicht PackageManager pkgMgr = getPackageManager(); \t Komponentenname comp = neuer Komponentenname ("com.usa.sis", "com.usa.sis.NFCActivity"); \t pkgMgr.setComponentEnabledSetting (comp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, \t 0); \t Ende(); \t android.os.Process.killProcess (android.os.Process.myPid()); System.exit (0); Das ist mein Code .... – Siva