Android 如何根据相同活动的片段启用NFC读取器
我有两个不同片段(A,B)的Activity1。如何在片段B可见时禁用NFC标记读取器,并在片段A可见时启用它Android 如何根据相同活动的片段启用NFC读取器,android,android-activity,fragment,nfc,Android,Android Activity,Fragment,Nfc,我有两个不同片段(A,B)的Activity1。如何在片段B可见时禁用NFC标记读取器,并在片段A可见时启用它 当通过调用enableForegroundDispatchinsideActivity1.onAttachFragments()附加B时,我认为在活动上使用enableForegroundDispatch()和disableforgrounddispatch()和disableForegroundDispatch内部活动1.在返回时但我想不会起作用,因为活动始终在前台可见,然后它将始终
当通过调用
enableForegroundDispatch
insideActivity1.onAttachFragments()附加B时,我认为在活动上使用enableForegroundDispatch()
和disableforgrounddispatch()
和disableForegroundDispatch
内部活动1.在返回时
但我想不会起作用,因为活动始终在前台可见,然后它将始终收到标记意图…由于没有人回答这个问题,我将分享我自己的解决方案,它似乎对我有效,即使代码一点也不“优雅”。首先,我在MainActivity中添加了一个简单的布尔值isnfcacive
,并在ReaderFragment中对其进行了更改,如下所示:
override fun onResume() {
super.onResume()
val activity = activity as MainActivity
activity.isNfcActive = true
}
override fun onDestroy() {
super.onDestroy()
val activity = activity as MainActivity
activity.isNfcActive = false
}
现在每次我从NFC卡上得到一个新的意图,我都会检查阅读是否处于活动状态。这样,除读卡器手机外的每个片段都会振动,但只有在您想要的片段中,才会处理此意图:
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
if (intent != null && isNfcActive) {
processIntent(intent)
}
}
由于没有人回答这个问题,我将分享我自己的解决方案,这似乎对我很有效,即使代码一点也不“优雅”。首先,我在MainActivity中添加了一个简单的布尔值
isnfcacive
,并在ReaderFragment中对其进行了更改,如下所示:
override fun onResume() {
super.onResume()
val activity = activity as MainActivity
activity.isNfcActive = true
}
override fun onDestroy() {
super.onDestroy()
val activity = activity as MainActivity
activity.isNfcActive = false
}
现在每次我从NFC卡上得到一个新的意图,我都会检查阅读是否处于活动状态。这样,除读卡器手机外的每个片段都会振动,但只有在您想要的片段中,才会处理此意图:
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
if (intent != null && isNfcActive) {
processIntent(intent)
}
}
你找到解决办法了吗?我也面临同样的问题。你找到解决办法了吗?我也面临同样的问题。