Używam uniwersalnego programu ładującego grafikę w aplikacji, która musi pobierać obrazy z autoryzowanego źródła.Uzyskiwanie dostępu do chronionych obrazów w uniwersalnym programie ładującym obrazy
tej pory, mam przedłużony klasę URLConnectionImageDownloader z własnej klasy i nadpisane w getStreamFromNetwork metody z własnego implementacja który ustawia nagłówek autoryzacji w obiekcie URLConnection jako takie:
public class authURLConnectionImageDownloader extends URLConnectionImageDownloader {
@Override
public InputStream getStreamFromNetwork(URI imageUri) throws IOException {
String auth = Base64.encodeToString(("username" + ":"+"psswd").getBytes(), Base64.NO_WRAP);
URLConnection conn = imageUri.toURL().openConnection();
conn.setRequestProperty("Authorization", "Basic " + auth);
conn.setConnectTimeout(DEFAULT_HTTP_CONNECT_TIMEOUT);
conn.setReadTimeout(DEFAULT_HTTP_READ_TIMEOUT);
return new FlushedInputStream(new BufferedInputStream(conn.getInputStream(), BUFFER_SIZE));
}
i konfigurowania mój ImageLoader ...
imageLoader = ImageLoader.getInstance();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(MainActivity.this)
.imageDownloader(new authURLConnectionImageDownloader())
.build();
imageLoader.init(config);
Do tej pory nie mogłem go uruchomić. Obraz nie został pobrany. Ale co ważniejsze, umieściłem punkt przerwania w getStreamFromNetwork() i to nigdy nie jest trafione? Co ja robię źle?
Dzięki za rozwiązanie! :) – Sadegh