我有一个使用NFC的应用程序。创建活动并调用enableForegroundDispatch()后,我的应用程序将扫描并接受NFC。但是,当在旋转期间扫描NFC时(意味着尚未创建活动,并且尚未调用enableForegroundDispatch()),默认的Android NFC扫描仪将接管显示收集的"新标签"屏幕。
即使在设备轮换期间,有没有办法继承enableForegroundDispatch()?或者有没有办法暂时"阻止"设备旋转时的默认Android NFC功能?
由于
编辑:应用程序仅在运行时接受NFC扫描。在应用程序未运行时扫描NFC仅显示"收集的新标签"屏
答案 0 :(得分:1)
有不同的可能性:
为您的活动设置屏幕方向
<activity android:name=".MyActivity"
android:screenOrientation="portrait"
android:label="@string/app_name">
设备轮换时告诉android不重启活动: https://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange
如果您的应用程序不需要在特定期间更新资源 配置更改,你有一个性能限制 要求您避免活动重启,然后您可以声明 您的活动处理配置更改本身,这会阻止 系统重新启动您的活动。
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
更新1
如果您使用android:configChanges
。您必须按照doc:
现在,当其中一个配置发生变化时,MyActivity不会 重新开始。相反,MyActivity接到一个电话 onConfigurationChanged()。此方法传递给Configuration对象 指定新设备配置。通过阅读中的字段 配置,您可以确定新的配置和制作 通过更新界面中使用的资源进行适当的更改。 在调用此方法时,您的活动的Resources对象是 已更新以根据新配置返回资源,因此您可以 轻松重置UI的元素,而无需重新启动系统 活性。