Я застрял с проблемой почти неделю. Проблема, с которой я сталкиваюсь, заключается в том, что когда я устанавливаю приложение в режиме отладки, функции принтера работают хорошо; они возвращают правильные ответы, и образцы текста печатаются с термопринтера POS.
Однако, когда я переключаю приложение в режим выпуска, все начинает вести себя немного по-другому. Чтобы дать вам представление о том, что происходит, вот правильные вызовы методов и ответы. Вы можете видеть, что запрос, который идет к ОС, является правильным, и возвращаемые значения также являются правильными.
09-06 21:22:04.058 357-357/? D/LibPrinterService: PrinterService getStatus...
09-06 21:22:04.072 357-357/? D/LibPrinterService: PrinterService getStatus,status=0
09-06 21:22:04.072 6412-6432/com.company.newpos D/PAYSDK: [+] Print Status: 0
09-06 21:22:04.072 357-466/? D/LibPrinterService: PrinterService getMaxTemperature...
09-06 21:22:04.074 357-466/? D/LibPrinterService: PrinterService getMaxTemperature,max=70
09-06 21:22:04.074 6412-6432/com.company.newpos D/PAYSDK: [+] Print MaxTemp: 70
09-06 21:22:04.074 357-5733/? D/LibPrinterService: PrinterService getWidth...
09-06 21:22:04.076 6412-6432/com.company.newpos D/PAYSDK: [+] Print Width: 384
09-06 21:22:04.077 357-357/? D/LibPrinterService: PrinterService getTemperature...
09-06 21:22:04.082 6412-6432/com.company.newpos D/PAYSDK: [+] Print Temp: 32
Это правильный способ работы. Теперь, когда я переключаюсь в режим разблокировки. методы ведут себя по-разному. Метод getStatus()
заставляет PrinterService возвращать текущую температуру (getTemperature()
), getMaxTemperature()
возвращает состояние (getStatus()
). В результате модуль принтера все испортил, и принтер не работает.
Сначала я подумал, что это проблема с отображением Proguard (но она все еще может быть), но то же самое происходит, даже когда Proguard и Minify отключены.
Может ли кто-нибудь помочь мне или дать мне представление о том, что может происходить здесь?
Спасибо