fix: decode base64-encoded file content

This commit is contained in:
2026-05-27 12:21:50 -05:00
parent 09255dd0d8
commit 030c313369
@@ -1,46 +1,72 @@
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQudXRpbHM7CgoKaW1wb3J0IGFuZHJvaWQub3MuRW52 package android.serialport.utils;
aXJvbm1lbnQ7CmltcG9ydCBhbmRyb2lkLnRleHQuVGV4dFV0aWxzOwppbXBvcnQgYW5kcm9pZC51
dGlsLkxvZzsKCmltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyOwppbXBvcnQgamF2YS5pby5G
aWxlOwppbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyOwoKcHVibGljIGNsYXNzIFNlcmlhbFBvcnRB import android.os.Environment;
cHBVdGlscyB7CiAgICBwcml2YXRlIGZpbmFsIFN0cmluZyAgU0VSSUFMX1BPUlRfRElSRUNUT1JZ import android.text.TextUtils;
X1BSSU5URVIgPSAiUHJpbnRlciI7CiAgICBwcml2YXRlIGZpbmFsIFN0cmluZyAgU0VSSUFMX1BP import android.util.Log;
UlRfRElSRUNUT1JZX0lNQUdFID0gIkltYWdlIjsKICAgIHByaXZhdGUgZmluYWwgU3RyaW5nICBT
RVJJQUxfUE9SVF9GSUxFX0xPR19XSVRIX0VYVEVOU0lPTiA9ICJsb2dzLnR4dCI7CgogICAgcHJp import java.io.BufferedWriter;
dmF0ZSBTdHJpbmcgaW1hZ2VQcmludFBhdGggPSAoRW52aXJvbm1lbnQuZ2V0RXh0ZXJuYWxTdG9y import java.io.File;
YWdlRGlyZWN0b3J5KCkKICAgICAgICAgICAgLnRvU3RyaW5nKCkgKyBGaWxlLnNlcGFyYXRvcgog import java.io.FileWriter;
ICAgICAgICAgICArIEVudmlyb25tZW50LkRJUkVDVE9SWV9EQ0lNCiAgICAgICAgICAgICsgRmls
ZS5zZXBhcmF0b3IKICAgICAgICAgICAgKyBTRVJJQUxfUE9SVF9ESVJFQ1RPUllfUFJJTlRFUgog public class SerialPortAppUtils {
ICAgICAgICAgICArIEZpbGUuc2VwYXJhdG9yCiAgICAgICAgICAgICsgU0VSSUFMX1BPUlRfRElS private final String SERIAL_PORT_DIRECTORY_PRINTER = "Printer";
RUNUT1JZX0lNQUdFCiAgICAgICAgICAgICsgRmlsZS5zZXBhcmF0b3IKICAgICAgICAgICAgKTsK private final String SERIAL_PORT_DIRECTORY_IMAGE = "Image";
cHJpdmF0ZSBTdHJpbmcgZmlsZU5hbWUgPSBTRVJJQUxfUE9SVF9GSUxFX0xPR19XSVRIX0VYVEVO private final String SERIAL_PORT_FILE_LOG_WITH_EXTENSION = "logs.txt";
U0lPTjsKICAgIHByaXZhdGUgc3RhdGljIFNlcmlhbFBvcnRBcHBVdGlscyBtU2VyaWFsUG9ydEFw
cFV0aWxzOwoKICAgIHB1YmxpYyBzdGF0aWMgU2VyaWFsUG9ydEFwcFV0aWxzIGdldEluc3RhbmNl private String imagePrintPath = (Environment.getExternalStorageDirectory()
KCkgewogICAgICAgIGlmIChtU2VyaWFsUG9ydEFwcFV0aWxzID09IG51bGwpIHsKICAgICAgICAg .toString() + File.separator
ICAgbVNlcmlhbFBvcnRBcHBVdGlscyA9IG5ldyBTZXJpYWxQb3J0QXBwVXRpbHMoKTsKICAgICAg + Environment.DIRECTORY_DCIM
ICB9CiAgICAgICAgcmV0dXJuIG1TZXJpYWxQb3J0QXBwVXRpbHM7CiAgICB9CiAgICBwdWJsaWMg + File.separator
dm9pZCBhcHBlbmRMb2coU3RyaW5nIHRleHQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBp + SERIAL_PORT_DIRECTORY_PRINTER
ZiAoaW1hZ2VQcmludFBhdGggIT0gbnVsbCkgewogICAgICAgICAgICAgICAgRmlsZSBsb2dGaWxl + File.separator
ID0gbmV3IEZpbGUoaW1hZ2VQcmludFBhdGgpOwogICAgICAgICAgICAgICAgU3RyaW5nIGZ1bGxQ + SERIAL_PORT_DIRECTORY_IMAGE
YXRoID0gRmlsZS5zZXBhcmF0b3IrZmlsZU5hbWU7CiAgICAgICAgICAgICAgICBGaWxlIGxvZ0Zp + File.separator
bGVUeHQgPSBuZXcgRmlsZShpbWFnZVByaW50UGF0aCwgIGZ1bGxQYXRoKTsKICAgICAgICAgICAg );
ICAgIGlmICghbG9nRmlsZS5leGlzdHMoKSkgewogICAgICAgICAgICAgICAgICAgIGxvZ0ZpbGUu private String fileName = SERIAL_PORT_FILE_LOG_WITH_EXTENSION;
bWtkaXJzKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWxvZ0ZpbGVU private static SerialPortAppUtils mSerialPortAppUtils;
eHQuZXhpc3RzKCkpIHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAg
ICAgICAgICBsb2dGaWxlVHh0LmNyZWF0ZU5ld0ZpbGUoKTsKICAgICAgICAgICAgICAgICAgICB9 public static SerialPortAppUtils getInstance() {
IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIEF1 if (mSerialPortAppUtils == null) {
dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJpbnRT mSerialPortAppUtils = new SerialPortAppUtils();
dGFja1RyYWNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgLy8gTG9nLmQoIlRFU1RfTE9HIiwg }
IkxvZyBXcml0bmcgZXJyOiIrZS5nZXRNZXNzYWdlKCkpOwoKICAgICAgICAgICAgICAgICAgICB9 return mSerialPortAppUtils;
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAg }
ICAgIGlmKGxvZ0ZpbGVUeHQhPW51bGwgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vQnVm public void appendLog(String text) {
ZmVyZWRXcml0ZXIgZm9yIHBlcmZvcm1hbmNlLCB0cnVlIHRvIHNldCBhcHBlbmQgdG8gZmlsZSBm try {
bGFnCiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkV3JpdGVyIGJ1ZiA9IG5ldyBCdWZm if (imagePrintPath != null) {
ZXJlZFdyaXRlcihuZXcgRmlsZVdyaXRlcihsb2dGaWxlVHh0LCB0cnVlKSk7CiAgICAgICAgICAg File logFile = new File(imagePrintPath);
ICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodGV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ1 String fullPath = File.separator+fileName;
Zi5uZXdMaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5jbG9zZSgpOwogICAgICAg File logFileTxt = new File(imagePrintPath, fullPath);
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAg if (!logFile.exists()) {
ICAgICAgICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jawogICAg logFile.mkdirs();
ICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgICAgICAgICAgICAv }
LyBMb2cuZCgiVEVTVF9MT0ciLCAiTG9nIFdyaXRuZyBlcnI6IitlLmdldE1lc3NhZ2UoKSk7CiAg if (!logFileTxt.exists()) {
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24g try {
ZSkgewogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0KICAgIH0KfQo= logFileTxt.createNewFile();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// Log.d("TEST_LOG", "Log Writng err:"+e.getMessage());
}
}
try {
if(logFileTxt!=null ) {
//BufferedWriter for performance, true to set append to file flag
BufferedWriter buf = new BufferedWriter(new FileWriter(logFileTxt, true));
buf.append(text);
buf.newLine();
buf.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// Log.d("TEST_LOG", "Log Writng err:"+e.getMessage());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}