Bonjour à tous,

j'ai une servlet qui repond à une requette effectuée via la webview. Dans le code html de cette réponse, on trouve une référence à une image avec une ligne qui ressemble à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<img id="toto" src="file:///sdcard/path/path/toto.png"/><br>
Cependant le page html est affichée et aucune image n'apparait. Lorsque je regarde le log, je vois l'erreur suivante :
" Not allowed to load local resource: file:// ...".
En effectuant quelques recherches sur le net (site1, site2 ), j'ai vu que le mode d'accès aux fichiers locaux par le protocole file:// a été bannit pour des questions de sécurité. J'ai aussi vu qu'il faut créer son propre ContentPrivider et rédifinir la méthode openFile(android.net.Uri uri, java.lang.String mode).
J'ai fait ça et j'ai modifié mon androidManifest.xml pour déclarer ce provider.

Voila ce que j'ai fait:

Dans com.myCompany.myPackageName.LocalContentProvider:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
public class LocalContentProvider extends ContentProvider {
 
public ParcelFileDescriptor openFile(Uri uri, String mode) throws
FileNotFoundException {
                URI fileURI = URI.create( "file://" + uri.getPath() );
                File file = new File( fileURI );
                ParcelFileDescriptor parcel=null;
                try {
                        parcel = ParcelFileDescriptor.open(file,
ParcelFileDescriptor.MODE_READ_ONLY);
                } catch (FileNotFoundException e) {
                        Log.d(LOG_TAG,"Error finding: " + fileURI + "\n" + e.toString());
                }
                return parcel;
        } ...
 
}
Dans androidManifest.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<provider android:name="LocalContentProvider" android:authorities="com.myCompany.myPackageName" />
Le problème c'est que je n'arrive toujours pas à accéder aux images.
je reçois l'erreur "Failed to find provider info for com.myCompany.myPackageName" lorsque j'essaie ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<img id="toto" src="content://com.myCompany.myPackageName/sdcard/path/path/toto.png"/>
et en réessayant avec file:// j'ai toujours la même erreur ("" Not allowed to load local resource: file:// ...").

est ce que quelqu'un aurait une idée ?
merci d'avance pour votre aide.

ps: Si j'ai mal exposé le problème, n'hésitez pas à me demander plus de détailles.