Android Post hochauflösendes Bild, das keinen Speicher mehr hat

Guten Tag, Entwickler.

Ich bin damit beschäftigt, dass Android Bilder von einer App hochlädt.
Ich habe es auch zum Laufen gebracht (Code folgt unten).
Wenn ich jedoch große Bilder (10 Megapixel) sende, stürzt meine App mit einer Ausnahmebedingung wegen Speichermangel ab.
Eine Lösung hierfür ist die Komprimierung, aber was ist, wenn ich das Bild in voller Größe senden möchte?
Ich denke vielleicht etwas mit einem Stream, aber ich bin nicht mit Streams vertraut. Vielleicht könnte urlconnection dazu beitragen, aber ich habe wirklich keine Ahnung.

Ich gebe dem Dateinamen den Namen File [0 bis 9999] .jpg. Der Beitragswert mit dem Bilddatum heißt Filedata. Ich gebe eine UID für den Beitragswert dropboxid

Der folgende Code funktioniert, aber ich würde gerne mein Problem lösen, das mich daran hindert, hochauflösende Bilder zu senden.

mit freundlichen Grüßen

<code>try
{
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.JPEG, 100, bos);
    byte[] data = bos.toByteArray();

    HttpPost postRequest = new HttpPost(URL_SEND);

    ByteArrayBody bab = new ByteArrayBody(data, "File" + pad(random.nextInt(9999) + 1) + ".jpg");
    MultipartEntity reqEntity = new multipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
    reqEntity.addPart("Filedata", bab);
    reqEntity.addPart("dropboxId", new StringBody(URLEncoder.encode(uid)));
    postRequest.setEntity(reqEntity);

    HttpResponse response = httpClient.execute(postRequest);
    BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
    String sResponse;
    StringBuilder s = new StringBuilder();

    while((sResponse = reader.readLine()) != null)
    {
        s = s.append(sResponse);
    }

    if(d) Log.i(E, "Send response:\n" + s);
}
catch (Exception e)
{
    if(d) Log.e(E, "Error while sending: " + e.getMessage());
    return ERROR;
}
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage