Problemino Android scatto fotografia

MBlackmore

Nuovo Utente
2
0
Buonasera, ho creato un app un po complessa che permette di registrare sul posto i rifornimenti fatti ai veicoli aziendali collegandosi al Database aziendale tramite webservice previa autenticazione NTLM.
Tale applicazione permette anche di effettuare foto alla ricevuta da inviare al database.

La faccio breve....

Installata su smartphone con Android 11 o piu vecchi non ha nessun problema
Installata su smartphone con Android da 13 in su quando scatto la foto ci mette una vita anche se poi alla fine lo fa......ma è snervante.

Posto un po di codice con le function che scattano la foto e la inserscono in una ImageView......ed inoltre una che codifica in base64 per trasmettere i dati al database.....

Secondo voi sbaglio qualcosa io o è Android 13 che rompe?

Codice:
private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(takePictureIntent, PHOTO_REQUEST_CODE);

}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode==PHOTO_REQUEST_CODE && resultCode == RESULT_OK)
    {
        Bitmap bp = (Bitmap) data.getExtras().get("data");
        final ImageView photo = findViewById(R.id.photo);
        photo.setImageBitmap(bp);
        String imgString = toBase64(bp);
        EditText etimagetext = findViewById(R.id.Et_Image);
        etimagetext.setText(imgString);
    }
}

private String toBase64(Bitmap bm) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 50, baos); //bm is the bitmap object
    byte[] b = baos.toByteArray();

    return Base64.encodeToString(b, Base64.NO_WRAP);
}


Ho cercato parecchio in rete ma non ho trovato nulla....

Grazie a tutti
 
Ultima modifica da un moderatore:

Ibernato

Utente Èlite
4,328
2,047
OS
Windows 10 Pro / Ubuntu 22.04
Ciao,
Innanzitutto startActivityForResult è deprecato.
Usa gli ActivityContracts.
Ti linko la risposta di un tizio per farla breve https://stackoverflow.com/questions...re-in-android-with-intent-lags-is-really-slow

Poi, puoi implementarti camerax con gli usecase della preview e dell'ImageCapture.
In questo modo sicuramente è molto più veloce piuttosto che aspettare che si apra la camera chiamando l'intent.

Comunque prova a seguire le istruzioni del tizio di stackoverflow
 
  • Mi piace
Reazioni: MBlackmore

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!