我需要一个关闭商米L2s PRO闪光灯的方法。
“闪光灯”是指设备顶部、激光条形码扫描仪旁边的灯 (我不是指设备背面的手电筒):
根据商米支持,这是不可能的。但是设备附带的演示应用程序有一个可以启用或禁用闪光灯的设置,所以一定有办法。不过好像是私有API。
有谁知道如何切换闪光灯或者如何对演示应用程序进行逆向工程或“拦截”系统调用等以了解它是如何完成的?
实现您想要的效果的唯一两种官方方法是从partner.sunmi.com Web面板推送设置或通过扫描仪配置(您称之为演示)应用程序。
正如您正确假设的那样,还有第三种 - 更加非官方且没有记录的方式 - 作为一个已经对商米设备上的扫描仪服务进行反汇编和逆向工程的人 - 发现了。
要使用它,请按照以下步骤操作:
IScanInterface.aidl
,请在关闭大括号之前添加以下行:void sendCommand(String str) = 5;
sendCommand
参数调用 scan00000107=1;
来启用闪光控制,或使用 scan00000107=0;
来禁用闪光控制。使用此 API,您可以更改扫描仪配置的所有选项。还有第二个私有方法来查询当前扫描仪配置。将来我将以通用 Android 库的形式发布我在逆向工程扫描仪服务中学到的所有内容,但在此之前,您可以参考我的 capacitor.js 插件,您可以在其中找到控制代码如果需要,可以了解其余设置。