Sto cercando di esporre un file .png che si trova nella directory dell'applicazione/dati attraverso un ContentProvider ma invece di raggiungere il metodo openFile
viene chiamato . Ora ho sempre e solo una singola immagine che ho bisogno di esporre per la condivisione ad altre applicazioni, come posso impostare la mia intenzione di andare a openFile
invece di query
?Condivisione di un'immagine nella directory dati dell'app tramite un ContentProvider su Android
Intent shareImageIntent = new Intent(Intent.ACTION_SEND);
shareImageIntent.setType("image/*");
shareImageIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(shareImageIntent, "Share image"));
Qualora l'Uri sembra
content://my.package.contentprovider/fileName
Oppure, in alternativa ho bisogno per creare un database per questo e restituire un cursore?
UPDATE
Quindi questo sembra essere al lavoro su tutto, tranne l'applicazione SMS (che è quello che ho deciso di provare prima) Vorrei supportare la condivisione ad esso comunque.
Ecco la relativa analisi dello stack:
Causato da: java.lang.IllegalArgumentException: Query contenuti: //mypackage.myprovider/someImage.png ritorna risultato nullo. a com.android.mms.ui.UriImage.initFromContentUri (UriImage.java:104) a com.android.mms.ui.UriImage. (UriImage.java:63) a com.android.mms.model.ImageModel .initModelFromUri (ImageModel.java:83) a com.android.mms.model.ImageModel. (ImageModel.java:65) a com.android.mms.data.WorkingMessage.changeMedia (WorkingMessage.java:481) in com.android.mms.data.WorkingMessage.setAttachment (WorkingMessage.java:375) ...
Quindi l'applicazione SMS sta eseguendo una query invece di leggere direttamente dal openFile
, che ogni altra applicazione sul mio il telefono sembra fare (incluso ot le sue app Google)
Qualcuno sa cosa ho bisogno di tornare qui per completare la query in modo appropriato? Ora sto scavando AOSP.
Thx per questa grande risposta! – Snicolas
Si noti inoltre che le colonne non sono richieste ma devono essere riempite per l'app sms. – Snicolas