воскресенье, 18 апреля 2010 г.

Использование внешних приложений для отправки картинок или чего-нибудь еще

Для Sketcher понадобилось реализовать возможность отправки получившейся картинки через e-mail, MMS и прочих. Можно, конечно, реализовать свой отправщик почты/MMS/еще-чего-нибудь, но это - изобретение велосипеда. Лучше воспользоваться стандартным механизмом, который предоставляют т.н. Content Providers.



На примере отправки картинки, это реализуется очень просто:

1 File file; // допустим, есть некоторая картинка
2 Uri uri = Uri.fromFile(file);
3
4 Intent i = new Intent(Intent.ACTION_SEND);
5 i.setType("image/png");
6 i.putExtra(Intent.EXTRA_STREAM, uri);
7 // вот здесь создается новое окно со списком доступных приложений,
8 // которые могут обработать данный с типом "image/png"
9 startActivity(Intent.createChooser(i, "Send Image To:"));

Однако, есть некоторые нюансы. Во-первых, файл должен быть сохранен на диске, во-вторых, на нем должны стоять права, разрешающие чтение сторонними приложениями.

Есть и некоторые глюки. Например, у меня на телефоне картинка нормально отсылается через MMS, пикасой, т.е. всеми, кроме Gmail. Пока не знаю почему, но почему-то файл не доходит до него, а в логах logcat пишет что-то типа:

04-01 18:33:06.589: DEBUG/Gmail(4465): ComposeActivity added to
message:0 attachment:|asketch.png|image/png|0|image/png|LOCAL_FILE|file:///data/data/org.sketcher/files/asketch.png size:0
04-01 18:33:06.609: INFO/Gmail(4465): >>>>> Attachment uri:
file:///
data/data/org.sketcher/files/asketch.png
04-01 18:33:06.609: INFO/Gmail(4465): >>>>> type: image/png
04-01 18:33:06.609: INFO/Gmail(4465): >>>>> name: asketch.png
04-01 18:33:06.609: INFO/Gmail(4465): >>>>> size: 0


Думаю, что это только у меня такое, но буду думать почему так...

UPD: Оказалось, что нужно сохранять файлы на SD карте, чтобы сторонние приложения могли без проблем прочесть его (GMail в частности). Возможно, это глюк старых версий, т.к. на некоторых девайсах нет SD карты

понедельник, 12 апреля 2010 г.

Sketcher Фан-арт

Приходят письма от пользователей Sketcher, сообщающих о багах, предлагающих новые фичи. Вчера пришло письмо от пользователя, который прислал картинку, нарисованную в Sketcher. Не смог удержаться, чтобы не запостить :) Если еще будут присылать, буду выкладывать сюда.

John Eide - "Hirsute":

суббота, 3 апреля 2010 г.

Про мою игрушку под Android

Для интересующихся, выкладываю игрушку на раннем этапе разработки: http://narod.ru/disk/19356766000/Game.apk.html . Изначально, я решил написать движок для игр типа tower defence, чтобы можно было его использовать универсально, меняя лишь логику игры. На данном этапе пытаюсь сделать клон игры Robo Defence. Если есть идеи по игре или желающие продолжить разработку игры для участия в Android Developer Challenge 2010, стучитесь :)

Скрины:





PS. Ресурсы в этой демке выдраны из оригинального Robo Defence