我上次在这里提问已经有一段时间了。Googled,Stack-Overflowed,等等-感觉其他人都没有这个问题。
无论如何,我为一位客户创建了一款应用程序,可以从员工的ID读取二维码,以确定他们的上班或下班时间;一个带有扭动的邦迪钟。我不太擅长Android编程,但我总体上很擅长编程;我的背景是Visual Basic和Java。我使用了谷歌的Vision API进行摄像头,它工作得很漂亮。我使用API-17,因为我唯一可用于测试的平板电脑运行在Jelly Bean上。
因此,我的客户为这款应用程序购买了一台平板电脑,它在Nougat 7.0上运行。出于某种原因,SurfaceView就这么停在那里。它可以“看到”,但它不能读取二维码。我点击它来自动对焦,甚至更改了首选的摄像头(我在代码中内置了),但它仍然无法读取任何二维码。我在运行Kitkat,棒棒糖,棉花糖,奥利奥,甚至馅饼的设备上安装了我的应用程序,它们都可以工作,除了运行Nougat的那个!我还没有尝试用Nougat在另一台设备上安装它,但我可能会在这篇文章之后这样做--也许是设备本身?它是一款华为Mediapad精简版,运行在自己的基于M3的定制操作系统上,因此也可能是这样的。
但是,以防我遗漏了什么,也许这里有更多Android编程专业知识的人可以帮助解开这个谜团。
更新:我在Nougat-7.1设备上安装了我的应用程序,它工作正常。我在Mediapad M3 Lite中重新安装了这个应用程序,但仍然不能工作。我倾向于认为这个问题可能与Nougat-7.0或华为的自定义操作系统(EMUI 5.1.3)有关。
发布于 2019-04-26 11:13:38
好吧,我想通了。这与自定义操作系统- EMUI有关。我试用了一下平板电脑,在“设置”的“高级”部分找到了一个“附加权限”设置。我允许它运行“调试”应用程序,它起作用了。奇怪的是,应用程序确实运行了,但没有读取二维码。但这个选项似乎修复了它,并揭示了一个新的选择。
我包含了一个它应该读取的代码的REGEX验证,如果二维码无效则抛出一个错误。现在,它只是读取任何二维码并跳过验证。我检查了我安装了这款应用的所有其他设备,所有来自Lollipop和up的Android都有同样的问题-它们都跳过了验证。然而,Kitkat和Jelly Bean完美地完成了验证。通过一些研究,我应该能够自己解决这个问题。
对于那些读了我的帖子并感到困惑的人,我向他们道歉。
https://stackoverflow.com/questions/55859968
复制相似问题