Я пытаюсь извлечь изображение .jpg с сервера и отобразить его как EncodedImage
в ZoomScreen
. Поскольку этот .jpg может быть очень большим, я хочу сохранить .jpg в файл и прочитать его оттуда, чтобы у меня не осталось всего этого в памяти.
Проблема, с которой я сталкиваюсь, заключается в том, что Connector.open ("http.url.com/file.jpg") либо выдает IOException
с сообщением "Bad Socket Id", либо выдает ClassCastException
когда я пытаюсь открыть FileConnection
для URL. Вот пример того, что я пробовал:
try {
FileConnection fileIn = (FileConnection)Connector.open(fileURL);
FileConnection fileOut = (FileConnection)Connector.open(fileDest);
if(!fileOut.exists())
fileOut.create();
InputStream is = fileIn.openInputStream();
OutputStream os = fileOut.openOutputStream();
while(fileIn.canRead() && fileOut.canWrite()){
os.write(is.read());
}
is.close();
os.close();
fileIn.close();
fileOut.close();
EncodedImage image = EncodedImage.getEncodedImageResource(fileDest);
UiApplication.getUiApplication().pushScreen(new ZoomScreen(image));
} catch (Exception e) {
e.printStackTrace();
}
Я получаю большую часть этого от RIM, но мне чего-то не хватает. Я знаю, что URL-адрес правильный, потому что я использую тот же формат, когда я транслирую аудио с того же сервера. Исключение выдается в первой строке, когда я пытаюсь подключиться к серверу.
У кого-нибудь есть опыт с этим?