Zebra tc25 datawedge上的Kivy应用程序停止返回carraige在停止并重新启动应用程序后返回?

2024-04-19 18:50:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我在android中有一个Kivy应用程序,它在Zebra tc25条形码扫描计算机上使用一个配置文件返回key_down事件,该配置文件已设置为使用carraige return后缀提供击键输出。
问题是,安装Apk后,我第一次打开应用程序时,扫描器在每次扫描时都会漂亮地给出ASCII字符13或carraige return,但一旦我关闭应用程序并重新启动或暂停应用程序并继续,扫描器就不想给出ASCII字符13。它扫描条形码,但不会在重新启动后返回carraige return。
有人能告诉我在manifest中必须声明哪些权限或活动,或者必须设置哪些设置才能在重新启动后返回carraige吗?

以下是打印到控制台后重启前和重启后的logcat输出:
1) 预处理:

11-02 10:24:35.194  2123  9706 I ScannerFramework: UndecodedImagerHandler, viewPortMode = ON
11-02 10:24:35.194  2123  9706 I ScannerFramework: UndecodedImagerHandler::DecodeThreadProc<ImagerContext> inside if(ViewPortMode =ON)
11-02 10:24:35.198  2123  9706 W ScannerFramework: [ScannerContext::RemoveDataSubscriber] Subscriber not present in subscriber list
11-02 10:24:35.199  2123  9706 I ScannerFramework: ISS[UndecodedImagerHandler::DoDataCallBackFlexiScript]: Completed passing data to user
11-02 10:24:35.200  3902  3916 D IMG_FRM : readsubmit for object: com.symbol.scanning.Scanner@faf4b13, mdec: com.symbol.datawedge.plugins.ScannerPlugin$5@a34f150
11-02 10:24:35.201  3210  3222 D InputMethodService: Params passed to SoftKeyboard android.util.MapCollections$KeySet@da98e4d7
11-02 10:24:35.201  3210  3222 D InputMethodService: keystroke_action_char 13
11-02 10:24:35.203  3902  3920 D ScannerPlugin: Time taken to process data by all plugins4ms
11-02 10:24:35.204  3210  3210 D InputMethodService: running Injector
11-02 10:24:35.204  3210  3210 D InputMethodService: Injector: doInject
11-02 10:24:35.208  9688  9710 I python  : Key down enter  49 1
11-02 10:24:35.210  9688  9710 I python  : Key down enter 1 51 3
11-02 10:24:35.211  9688  9710 I python  : Key down enter 13 49 1
11-02 10:24:35.212  9688  9710 I python  : Key down enter 131 51 3
11-02 10:24:35.213  9688  9710 I python  : Key down enter 1313 51 3
11-02 10:24:35.214  9688  9710 I python  : Key down enter 13133 13 None

2)重启后:

11-02 10:26:04.994  2123  9875 I ScannerFramework: UndecodedImagerHandler::DecodeThreadProc<ImagerContext> inside if(ViewPortMode =ON)
11-02 10:26:05.027  2123  9875 W ScannerFramework: [ScannerContext::RemoveDataSubscriber] Subscriber not present in subscriber list
11-02 10:26:05.027  2123  9875 I ScannerFramework: ISS[UndecodedImagerHandler::DoDataCallBackFlexiScript]: Completed passing data to user
11-02 10:26:05.028  2123  9896 E ScannerFramework: [MessageQueue::waitForMsg]queue2 not-null
11-02 10:26:05.029  3210  3222 D InputMethodService: Params passed to SoftKeyboard android.util.MapCollections$KeySet@da98e4d7
11-02 10:26:05.029  3210  3222 D InputMethodService: keystroke_action_char 13
11-02 10:26:05.029  3902  3916 D IMG_FRM : readsubmit for object: com.symbol.scanning.Scanner@15d304e, mdec: com.symbol.datawedge.plugins.ScannerPlugin$5@3b9856f
11-02 10:26:05.030  3210  3210 D InputMethodService: running Injector
11-02 10:26:05.030  3902  3920 D ScannerPlugin: Time taken to process data by all plugins2ms
11-02 10:26:05.030  3210  3210 D InputMethodService: Injector: doInject
11-02 10:26:05.046  9853  9872 I python  : Key down enter  49 1
11-02 10:26:05.046  9853  9872 I python  : Key down enter 1 49 1
11-02 10:26:05.047  9853  9872 I python  : Key down enter 11 50 2
11-02 10:26:05.049  9853  9872 I python  : Key down enter 112 50 2
11-02 10:26:05.051  9853  9872 I python  : Key down enter 1122 57 9
11-02 10:26:05.052  9853  9872 I python  : Key down enter 11229 57 9

从logcat输出的最后一行可以看出,重启后缺少ASCII十进制字符13。
或者如果有人精通pyjniusgenius库,我如何使用jnius访问datawedge类"com.symbol.datawedge.api.SCANNER_OUTPUT_PLUGIN"
下面给出了jnius.jnius.JavaException: Class not found b'com/symbol/datawedge'错误:

import jnius
from jnius import autoclass
DatawedgeApi = autoclass("com.symbol.datawedge.api")

有了这个,我可以使用输出插件
更新:
因此,我找到了一个纯Kivy解决方案,它是一种盲目的解决方法,可以在不依赖datawedge的char 13字符的情况下获得击键输出,但只有时间才能判断它是否长期有效。所以我创建了一个trigger event,当第一个字符从扫描器中读取时触发,扫描器每0.1秒循环一次,以检查构建条形码的StringProperty变量是否等于每个循环的TextInput中设置的值。当字符串变量在0.01秒时生成,并且检查它们是否相等的函数以较慢的速度运行时,如果TextInput == StringProperty,则会知道条形码的完整读取。当然,如果datawedge配置文件或设置被更改,我的应用程序将无法验证插件。你知道吗


Tags: tokeycom应用程序symbol字符downenter