Android 当我关闭应用程序时,如何停止NDEFèU接收器?
我像这样过滤意图Android 当我关闭应用程序时,如何停止NDEFèU接收器?,android,nfc,Android,Nfc,我像这样过滤意图 <intent-filter> <action android:name="android.nfc.action.NDEF_DISCOVERED"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="text/plain" /> 现在的问题是,当我在手机附近发现Ndef标记时,我在应用程序中实现的事件
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain" />
现在的问题是,当我在手机附近发现Ndef标记时,我在应用程序中实现的事件正在运行(甚至我的应用程序处于关闭状态)。
如何停止此操作?使用Foreground Dispatch系统 例如:
使用前台调度系统 例如:
最好的解决方案可能是使用NFC前台调度。但是关闭清单文件中的意图过滤器可以通过在清单中使用。通过将意图过滤器放置在
元素中而不是
元素本身,您可以在应用程序中随意禁用和启用它
因此,假设您的舱单中有:
<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>
请注意,新设置只对重新启动应用程序起作用(因此,您可能需要考虑0而不是PasaGeMaNeG.DONTKKILYLAPP)。此外,packagemanager通常需要一段时间才能使新设置生效(可能取决于设备的处理速度)。最好的解决方案可能是使用NFC前台调度。但是关闭清单文件中的意图过滤器可以通过在清单中使用。通过将意图过滤器放置在
元素中而不是
元素本身,您可以在应用程序中随意禁用和启用它
因此,假设您的舱单中有:
<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>
请注意,新设置只对重新启动应用程序起作用(因此,您可能需要考虑0而不是PasaGeMaNeG.DONTKKILYLAPP)。此外,packagemanager通常需要一段时间才能使新设置生效(可能取决于设备的处理速度)。现在我只使用您的代码。。。我在应用程序退出选项中实现了这个。。。但这段代码并没有停止应用程序进程。。。我想停止应用程序……我也使用了它,但应用程序没有停止PackageManager pkgMgr=getPackageManager();ComponentName comp=新组件名(“com.usa.sis”、“com.usa.sis.NFCActivity”);pkgMgr.setComponentEnabledSetting(组件、PackageManager.COMPONENT已启用、状态已禁用,0);完成();android.os.Process.killProcess(android.os.Process.myPid());系统出口(0);这是我的代码…现在我只使用你的代码。。。我在应用程序退出选项中实现了这个。。。但这段代码并没有停止应用程序进程。。。我想停止应用程序……我也使用了它,但应用程序没有停止PackageManager pkgMgr=getPackageManager();ComponentName comp=新组件名(“com.usa.sis”、“com.usa.sis.NFCActivity”);pkgMgr.setComponentEnabledSetting(组件、PackageManager.COMPONENT已启用、状态已禁用,0);完成();android.os.Process.killProcess(android.os.Process.myPid());系统出口(0);这是我的代码。。。。