Android NFC AAR(s) 无需使用 Google Play 商店

3
我想制作一个NFC标签,可以执行所有必要的安装和启动操作以使用我的应用程序。基本上,这个想法是你把我们的设备从盒子里拿出来,把手机放在它上面,它会引导您完成所有安装和运行步骤。然后,在未来的任何时间,你只需要触摸NFC标签就能使用。
在标签上,我想要:
  1. 指向我们网站下载页面的Uri记录
  2. 与手机配对的蓝牙相关记录
  3. 包含我们应用程序包名称的AAR
如果我们的应用程序已经安装,这非常好用,因为我们会收到NDEF意图,解析蓝牙并配对远程设备。
如果我们的应用程序没有安装,我希望浏览器打开我们的网站,以便您可以下载应用程序。不幸的是,存在AAR NDEF记录会将用户重定向到Google Play商店。由于业务原因,我们现在不想将我们的应用程序放在Play商店上。
有没有一种方法可以在标签上有一个AAR或等效记录,如果安装了应用程序,将意图直接指向我们的应用程序,但如果未安装,则不会重定向到应用商店?
如果不能实现这个方案,是否有多个AAR记录的解决方案,可以在我们的应用程序未安装时回退到浏览器?

虽然我非常希望这是可能的,但据我所知,它不是。 - CommonsWare
2个回答

2
我们还在寻找更好的答案,但目前为止这是我们想出的最佳方案。
我们的标签现在包含以下内容:
  1. 指向我们网站下载页面的Uri记录
  2. 与手机配对的蓝牙相关记录
  3. 包含我们应用程序包名称的AAR文件
  4. 包含com.sec.android.app.sbrowser的AAR文件
  5. 包含com.google.android.browser的AAR文件
  6. 包含com.android.chrome的AAR文件
基本上,如果我们的应用程序已安装,则我们的应用程序会捕获该意图;否则,我们尝试使用几个标准浏览器软件包名称作为备选项来捕获URI。我们有一个相当大的NFC标签,因此也许我们可以列出所有Android上标准浏览器软件包名称的列表。
到目前为止,它在4个不同制造商的8部手机上运行良好。如果有人有完整的浏览器列表,我们将不胜感激。显然这并不理想,但它可能适用于企业场景,您可以控制要购买哪些手机。

0
尝试以下操作:
在您的应用程序清单中删除所有AAR记录,并创建一个意图过滤器,以确切地过滤特定的URI。然后,如果您的应用程序已安装,则始终会接收到该意图,否则,安装在手机上处理通用http / https的任何应用程序/浏览器都将打开下载页面。
请查看我之前的答案,其中演示了创建自定义URI / MimeType过滤器:https://stackoverflow.com/a/27397938/3312868 编辑:随着时间的推移,如果您在Play商店上发布您的应用程序,您可以更改您的下载URL以重定向到Play商店。

筛选器必须完全匹配吗?我在测试手机上发现仅提供主机名不足以直接路由到我的应用程序,用户总是要决定是启动浏览器还是我的应用程序。 - dhakim
最具体的意图过滤器应该“获胜”。你尝试过将通配符作为路径添加吗? - griffinjm
此外在文档中,android:path实际上是android:pathPrefix,请参见此处:http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#abs-uri - griffinjm
我为NDEF_DISCOVERED设置了一个意图过滤器,匹配方案https,主机<mywebsite>,pathPrefix /downloads,并具有DEFAULT类别。我的测试手机仍然会在安装了我的应用程序后询问我是否要使用Chrome。 - dhakim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接