【问题标题】:Is it possible to set default app for Zebra barcode scanner?是否可以为 Zebra 条码扫描仪设置默认应用程序?
【发布时间】:2020-02-26 16:10:41
【问题描述】:

我为 Zebra TC20 条码扫描器创建了小型反应原生应用程序。它工作得很好。我需要解决的主要问题是在按下扫描按钮时以某种方式打开我的应用程序......

默认情况下,当按下扫描按钮并且我的应用未运行时,DWDemo 应用会启动并显示扫描的数据。我需要默认打开我的应用程序。

我正在使用https://github.com/darryncampbell/react-native-datawedge-intents 获取条形码。它使用DeviceEventEmitter

也许有一些技术可以在前台为特定事件注册监听器并启动应用程序?

【问题讨论】:

    标签: android react-native datawedge


    【解决方案1】:

    那个 React 模块(顺便说一下,我是它的作者 :))是硬编码的,假设扫描数据将通过广播意图发送。我这样做是因为 DataWedge API 只能通过广播意图与应用程序通信,但是扫描数据不是通过 DataWedge API 发送的,而是通过支持 startActivity 和 startService 的 DataWedge Intent 输出插件发送的。

    默认情况下,开箱即用的设备在扫描条码时不会启动 DWDemo。如果您启动 DataWedge,您将看到许多配置文件,其中一个将是“默认”配置文件,当没有其他配置文件生效时使用(即没有与特定配置文件关联的应用程序在前台) - 您可以配置此默认配置文件将 Intent delivery 指定为 StartActivity,我假设您设备上的默认配置文件正在调用 DWDemo 应用程序。

    因此,要实现您想要实现的目标,您需要:

    【讨论】:

    • 在相关说明中,我看到昨天在 Zebra 开发人员门户 (developer.zebra.com/forum/24987) 上提出了一个类似的问题。我猜你是同一个作者?不幸的是,由于一些技术问题,我无法在开发门户上回复
    • 所以如果我在我的情况下正确理解我当前使用的配置文件只是为了传递数据而我需要将其配置为不传递数据,而是启动应用程序,而不是我需要得到Java 中的意图。所以基本上不需要使用你的 react native 模块?
    • 默认配置文件是 Profile0,它不能关联任何应用程序。还有 2 个配置文件 Launcher 似乎启动了应用程序,但对我和 DWDemo 配置文件不起作用。我还尝试导出所有配置文件并将每次出现的 DWDemo 应用程序更改为我自己的应用程序名称,但也没有运气。
    • 您希望通过扫描来启动您的应用程序,实现此目的的最简单方法是让扫描通过 StartActivity 调用您的应用程序。当任何调用 StartActivity 时,它会通过 Intent 执行此操作,DataWedge 会将扫描数据添加到此 Intent,因此在您的 Activity 启动后,您可以调用 getIntent() 来查看扫描数据是什么。您可以在 Native 应用程序中轻松做到这一点,我可以为您提供示例,但由于我的经验不足,我不确定如何从 ReactNative 调用 getIntent()。
    • 配置文件将与前台应用关联。我开始谈论“默认应用程序”,因为我假设您想调用您的应用程序,而不管显示什么活动。 “启动器”在显示主屏幕时生效,您可以根据需要将其删除。 DWDemo 配置文件只有在 DWDemo 处于前台时才有效。我不确定为什么要为您推出 DWDemo。如果您想将导出的 DataWedge 配置发送给我,我可以看看
    猜你喜欢
    • 2012-05-21
    • 2019-02-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多