【问题标题】:Android do not scan NFC during device rotationAndroid 在设备旋转期间不扫描 NFC
【发布时间】:2016-05-30 17:45:42
【问题描述】:

我有一个使用 NFC 的应用程序。创建 Activity 并调用 enableForegroundDispatch() 后,NFC 将被我的应用程序扫描并接受。但是,当在旋转期间扫描 NFC 时(意味着尚未创建 Activity,并且尚未调用 enableForegroundDispatch()),默认的 Android NFC 扫描仪将接管显示“收集新标签”屏幕。

即使在设备旋转期间,是否有任何方法可以继承 enableForegroundDispatch() ?或者有没有办法在设备旋转时暂时“阻止”默认的 Android NFC 功能?

谢谢

编辑:应用程序仅在运行时接受 NFC 扫描。在应用未运行时扫描 NFC 只会显示“收集新标签”屏幕

【问题讨论】:

  • 运行服务怎么样。
  • 据我所知,目前不支持使用服务来处理 NFC 功能。
  • 这个标签是你的应用程序特有的吗?你能在标签上编码 NDEF 消息吗?

标签: android rotation nfc


【解决方案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。您必须按照文档中的说明管理自己的屏幕旋转:

现在,当这些配置之一发生变化时,MyActivity 不会 重新开始。相反,MyActivity 收到一个调用 onConfigurationChanged()。此方法传递一个配置对象 指定新的设备配置。通过读取字段 配置,可以确定新的配置并制作 通过更新界面中使用的资源进行适当的更改。 在调用此方法时,您的活动的资源对象是 更新为根据新配置返回资源,因此您可以 无需重新启动系统即可轻松重置 UI 元素 活动。

【讨论】:

  • 您好,感谢您的回答。但是,我的应用必须旋转,并且应用 android:configChanges 会以某种方式影响纵向和横向的布局。
  • @mugiwara528,有用吗?
  • 嗨,是的,它很有用。但是,我们选择了不同的方法来解决这个问题。
  • @mugiwara528 如果您的“不同方法”解决了问题(对您而言),您可能希望将其添加为您自己问题的答案,因为它也可能对其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 2012-11-13
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
相关资源
最近更新 更多