Я хочу отправить байтовый массив изображения подписчику через брокер mqtt.Но размер данных байтового массива изображения слишком велик для публикации в брокере mqtt, так как я могу отправить данные байтового массива изображения подписчику?
PicBitmap = ((BitmapDrawable)iVpic.getDrawable()).getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PicBitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
picbyte = bos.toByteArray();
String s = Base64.encodeToString(picbyte,Base64.DEFAULT);
String pichex = toHexString(s);
String payload = pichex;
byte[] encodedPayload = new byte[0];
try {
encodedPayload = payload.getBytes("UTF-8");
MqttMessage message = new MqttMessage(encodedPayload);
message.setQos(qos);
mqttClient.publish(topic, message);
} catch (UnsupportedEncodingException | MqttException e) {
e.printStackTrace();
}
public static String toHexString(String input) {
return String.format("%x", new BigInteger(1, input.getBytes()));
}
Мне нужно преобразовать байтовый массивв строку и шестнадцатеричный код ascii сначала, затем только публиковать на брокереНо строка, преобразованная из байтового объекта, слишком длинная, ее не удавалось опубликовать каждый раз, когда я пытаюсь опубликовать ее.