【问题标题】:Android NFC AAR(s) Without Google Play Store没有 Google Play 商店的 Android NFC AAR(s)
【发布时间】:2015-08-13 18:51:25
【问题描述】:

我正在尝试制作一个 NFC 标签,它可以为我的应用程序执行所有必要的安装和启动。基本上,这个想法是您将我们的设备开箱即用,用手机触摸它,它会引导您完成安装和运行它的所有步骤。然后,在未来的任何时候,您只需触摸 NFC 标签即可。

在标签上,我想有:

  1. Uri 记录指向我们网站的下载页面,
  2. 我们的设备与手机配对的蓝牙相关记录
  3. AAR 包含我们的应用程序包名称

如果我们的应用程序已安装,这将非常有效,因为我们会收到 NDEF 意图,解析蓝牙并配对远程设备。

如果我们的应用程序没有安装,我想要一个浏览器来打开我们的网站,以便您下载该应用程序。不幸的是,AAR NDEF 记录的存在反而将用户发送到 Google Play 商店。出于商业原因,我们现在不想将我们的应用程序放到 Play 商店中。

有没有办法在标签上有一个 AAR 或等效记录,如果已安装,则将意图定向到我们的应用程序,但如果未安装,则不会重定向到应用程序商店?

如果做不到这一点,是否有一个解决方案可以在未安装我们的应用程序时回退到浏览器中的多个 AAR 记录?

【问题讨论】:

  • 虽然我真的希望这是可能的,但事实并非如此。

标签: android android-intent nfc


【解决方案1】:

我们仍在寻找更好的答案,但这是迄今为止我们想出的最好的答案。

我们的标签现在包含:

  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 款手机。如果有人有完整的浏览器列表,我们将不胜感激。它显然不理想,但它可能适用于您可以控制购买哪些手机的企业场景。

【讨论】:

    【解决方案2】:

    尝试以下方法:

    删除所有 AAR 记录并在您的应用清单中创建一个意图过滤器,以准确过滤特定 URI。然后,如果您的应用已安装,它将始终接收意图,否则手机上安装的任何应用/浏览器来处理通用 http/https 都会打开下载页面。

    请查看我之前的回答,该回答演示了如何创建自定义 URI/MimeType 过滤器:https://stackoverflow.com/a/27397938/3312868

    编辑:如果您及时在 Play 商店上发布您的应用,您可以更改您的下载网址以重定向到 Play 商店。

    【讨论】:

    • 过滤器是否必须完全匹配?我在我的测试手机上发现,仅仅提供主机名并不足以直接路由到我的应用程序,用户总是要启动浏览器还是我的应用程序。
    • 最具体的意图过滤器应该“获胜”。您是否尝试添加通配符作为路径?
    • 此外,在文档中,android:path 实际上是 android:pathPrefix,请参见此处:developer.android.com/guide/topics/connectivity/nfc/…
    • 我为 NDEF_DISCOVERED 设置了一个意图过滤器,它匹配方案 https、主机 、pathPrefix /downloads,类别为 DEFAULT。安装应用时,我的测试手机仍然询问我是否要使用 chrome。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    相关资源
    最近更新 更多