Sembra che la condivisione di dati ad altre app su Android M sia possibile solo quando l'altra app ha chiesto manualmente il permesso READ_EXTERNAL_STORAGE e mi chiedo se qualcuno conosca un modo per aggirarlo senza aprire manualmente tutte le app a cui posso condividere e selezionare l'autorizzazione di archiviazione.Autorizzazioni su Android M quando si condividono dati con altre app
Per esempio io ho il seguente intento di condividere alcuni dati:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Some Image Subject");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(someFile));
startActivity(Intent.createChooser(shareIntent, "Share via..."));
Assumere someFile
esiste e che ho già seguito il modello di autorizzazione runtime consigliato suggerito al http://developer.android.com/training/permissions/requesting.html e l'utente ha accettato di permettere il mio permesso, quindi il file è stato effettivamente creato sul sistema.
C'è un modo per comunicare all'applicazione a cui sto condividendo, che ho concesso questa autorizzazione al mio utente, per favore concedilo per mio conto?
Questo non funziona:
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Secondo la documentazione: il permesso
int FLAG_GRANT_READ_URI_PERMISSION
Se impostato, sarà concesso il destinatario di questo intento di eseguire le operazioni di lettura su l'URI nei dati dell'Intent e tutti gli URI specificati nei suoi ClipData.
E ancora più interessante il fatto che, se questo flag è impostato e condivido a Gmail, la bandiera non viene rilevato e Google non richiede di chiedere il permesso, ma piuttosto solo cattura l'eccezione e non allegare il mio file.
Qualsiasi aiuto sarebbe apprezzato.
Hi. Hai già trovato la soluzione? Sto affrontando un errore simile. Voglio condividere video su Youtube. E YouTube si blocca con SecurityException: negazione del permesso. Richiede l'autorizzazione READ_EXTERNAL_STORAGE o il permesso di concessione. – TOP