gpt4 book ai didi

android - NFC标签安卓

转载 作者:行者123 更新时间:2023-11-30 02:59:53 32 4
gpt4 key购买 nike

我知道有很多代码可以使用 Android 设备读取或写入 NFC 标签,但这样做是否可行:如果有 WiFi 连接打开此链接,否则打开另一个链接?不构建自定义阅读器,而是使用内置阅读器?

或者我需要使用这个设备http://www.amazon.com/uFR-RFID-Reader-Writer-Programmer/dp/9896740054/ref=sr_1_8?ie=UTF8&qid=1395842599&sr=8-8&keywords=ACR122U , 应用这个 ?

最佳答案

如果您扫描包含 URL 的 NFC 标签,Android 的默认行为(除非应用已注册该 URL)是在网络浏览器中打开该 URL。此外,Android 的自动调度系统只会从标签中读取第一个 NDEF 记录(除非有可用的 AAR)。因此,默认情况下,Android 只会处理标签上的第一个 URL。

如果您想实现所需的行为,您唯一的选择是创建自己的应用程序(这很好,顺便说一句,否则您的问题在 stackoverflow 上可能会偏离主题)。

那么您的应用应该如何设计?

  1. 您将创建一个 NFC 标签,其中包含两条众所周知类型 URI 的 NDEF 记录,其中包含您的两个 URL。其中第一个应该指向首选 URL,以防您的应用程序未安装在用户设备上(在这种情况下,第一个 URL 将自动在网络浏览器中启动)。另请注意,第一个 URL 应该属于您(即它应该使用属于您的域名)。否则,您的应用可能会干扰使用相同 URL 的其他应用。例如

    +-------------------------------------------------+
    | WKT:URI | http://www.mroland.at/example/noWiFi |
    +-------------------------------------------------+
    | WKT:URI | http://www.mroland.at/example/hasWiFi |
    +-------------------------------------------------+
  2. 如果检测到第一个记录中的 URL(在我们的例子中是 http://www.mroland.at/example/noWiFi),您可以将您的应用程序注册为自动启动。您可以在 list 中使用这样的 Intent 过滤器来执行此操作:

    <activity ...>
    <intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http"
    android:host="www.mroland.at"
    android:pathPrefix="/example/noWiFi" />
    </intent-filter>
    </activity>
  3. 您的应用程序由 NDEF_DISCOVERED Intent 启动,您可以检测当前网络状态(即 WiFi 是否可用)。如果 WiFi 可用,您将从 NFC 标签读取第二个 NDEF 记录,并发送一个 Intent 以在 Web 浏览器中启动该 URL。否则,您将从第一条记录中获取 URL 并发送一个 Intent 以在网络浏览器中启动该 URL。

关于android - NFC标签安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22685392/

32 4 0