У меня возникли проблемы с использованием карт из недавно выпущенного GDK. В принципе, Card.addImage() может принимать только два аргумента, идентификатор ресурса или URI.Установка изображения Google Glass Card с ошибкой URI файла
Для моего варианта использования мне нужно открыть изображение, которое существует как файл, а не как ресурс. Поэтому для целей тестирования я включаю изображения в папку с ресурсами. Попытка получить доступ к ним непосредственно из папки с ресурсами не удалась, поэтому я копирую их оттуда во внутреннее хранилище. Как только они будут скопированы, я создаю URI из файла и назначаю его на карту. Полученная карта показывает серый блок, где должно быть изображение.
String fileName = step.attachment; //of the form, "folder1/images/image1.jpg"
File outFile = new File(getFilesDir()+File.separator+fileName);
FileChannel inputChannel = null;
FileChannel outputChannel = null;
try {
//check to see if the file has already been cached in internal storage before copying
if(!outFile.exists()) {
FileInputStream inputStream = new FileInputStream(getAssets().openFd(fileName).getFileDescriptor());
FileOutputStream outputStream = openFileOutput(fileName, Context.MODE_PRIVATE);
inputChannel = inputStream.getChannel();
outputChannel = outputStream.getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
if(inputChannel!=null)
inputChannel.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(outputChannel!=null)
outputChannel.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
card.addImage(Uri.fromFile(outFile));
Трудно диагностировать, потому что я понятия не имею, что делает Карточка внутри.
Хорошо, это дует мой разум. Я изменил выходной каталог изображений на/sdcard /, чтобы я мог видеть, правильно ли копируются изображения. Все они были огромными, и все одинаковые размеры, 103 МБ. Это по совпадению тот же размер, что и мой APK (я собираю в него много контента для тестирования). Я открыл файл в 7zip, и это мой apk! Что тут происходит? Как я скопировал приложение? – csrussell