android– 如何通过扫描NFC标签启动没有启动器图标的应用程序?

android– 如何通过扫描NFC标签启动没有启动器图标的应用程序?,第1张

概述我想通过扫描包含AndroidApplicationRecord的NFC标签启动我的应用程序.但是,此应用程序不应该有启动器图标,因此我无法使用CATEGORY_LAUNCHER.我的问题是,如果我在清单中注释掉CATEGORY_LAUNCHER行,则该应用程序不再启动(在GooglePlay上执行搜索):<manifestxmlns:android="

我想通过扫描包含Android Application Record的NFC标签来启动我的应用程序.但是,此应用程序不应该有启动器图标,因此我无法使用category_LAUNCHER.

我的问题是,如果我在清单中注释掉category_LAUNCHER行,则该应用程序不再启动(在Google Play上执行搜索):

<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"    package="app.my">    <application androID:label="@string/app_name">        <activity androID:name=".MainActivity">            <intent-filter>                <action androID:name="androID.intent.action.MAIN" />                <!--<category androID:name="androID.intent.category.LAUNCHER" />-->            </intent-filter>        </activity>    </application></manifest>

我也尝试添加以下intent过滤器,但没有运气:

<intent-filter>    <action androID:name="androID.nfc.action.NDEF_disCOVERED" />    <category androID:name="androID.intent.category.DEFAulT" />    <data androID:mimeType="text/plain" /></intent-filter>

我该怎么做才能让它发挥作用?我应该在MainActivity中添加代码来处理NDEF_disCOVERED意图吗?

解决方法:

除了AndroID应用程序记录(AAR)之外,执行此 *** 作的典型方法是向标记添加另一条记录(MIME类型,NFC论坛外部类型或URI).在这种情况下,AAR必须是标签上NDEF消息的最后一个(或至少不是第一个)记录.

然后,您可以使用NDEF_disCOVERED意图过滤器通过过滤该特定数据类型(即标记上NDEF消息的第一条记录的类型)来捕获标记发现.例如.对于NFC论坛外部类型:

<activity androID:name=".MainActivity">    <intent-filter>        <action androID:name="androID.nfc.action.NDEF_disCOVERED" />        <category androID:name="androID.intent.category.DEFAulT" />        <data androID:scheme="vnd.androID.nfc"              androID:host="ext"              androID:pathPrefix="/yourdomain.com:yourtypename"/>    </intent-filter></activity>

在这种情况下,AAR将确保您的应用程序优先于注册相同类型的任何其他应用程序,并且Play应用程序将在您的应用程序尚未安装时打开.

如果您没有为匹配的NDEF_disCOVERED意图过滤器注册任何活动,则AAR将导致第一个具有MAIN / LAUNCHER意图过滤器的活动(在这种情况下,AndroID将不会将标记的句柄传递给您的活动).因此,如果既没有注册NDEF_disCOVERED意图也没有注册MAIN / LAUNCHER意图,那么AAR机制将不起作用.

但是,如果您希望您的标签仅包含AAR而没有其他记录,该怎么办?

您可以通过为AAR本身注册一个intent过滤器来完成此 *** 作. AAR是NFC论坛外部类型,类型名称为“urn:nfc:ext:androID.com:pkg”,因此您可以使用以下intent过滤器:

<intent-filter>    <action androID:name="androID.nfc.action.NDEF_disCOVERED" />    <category androID:name="androID.intent.category.DEFAulT" />    <data androID:scheme="vnd.androID.nfc" androID:host="ext"          androID:pathPrefix="/androID.com:pkg" /></intent-filter>
总结

以上是内存溢出为你收集整理的android – 如何通过扫描NFC标签启动没有启动器图标的应用程序?全部内容,希望文章能够帮你解决android – 如何通过扫描NFC标签启动没有启动器图标的应用程序?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1118125.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存