Pull to refresh

Comments 49

В итоге пост написан, а потестить программу возможности нет. Понятно, что все сложно, но как оценить результат преодоления вами сложностей?
Я же дал слова, по которым она ищется в маркете. Ringtone Keeper
Дать прямую ссылку? Вроде по правилам реклама запрещена…
QR код повесьте)
И не реклама в явном виде и желающий может зайти
Я же дал слова, по которым она ищется в маркете. Ringtone Keeper
Дать прямую ссылку? Вроде по правилам реклама запрещена…
И с habrahabr.ru туда на данный момент уходит только 1,5% кликов.
Ссылка не активная. Только часть людей пользуется возможностью использовать выделенный текст, как url. Остальные копируют в новую вкладку.
«что у андроида НЕТ стандартного диалога выбора файла/каталога»

Не знаю как раньше, а перед выходом ICS один из разработчиков утверждал, что они будут исповедовать отход от прямой работы с файловой системой, т.е. флешка должна быть «чёрным ящиком», внутренняя структура которого пользователю до лампочки — пользователи должны использовать контент (с помощью каталогизаторов и т.п.), а не файлы.

Вот именно из-за этого разрыва между задумкой и реализацией ондрюша меня огорчает всё больше.
ойой, андроид приходит к тому, за что всё время так ругают IOS/WP :)
Они его и исповедуют.
Отсюда и яростная борьба с рутованием.
Но смысл какой? Зачем урезать стандартный уже функционал?
ЕМНИП, там шла речь о механизме прозрачного «размазывания» установленных приложений между внутренней памятью и флешкой, т.е. о финале попоболи пользователей Link2SD и пр. И реализация этого механизма, якобы, потребует отбирание у пользователя возможности монтирования устройства как накопителя.

XuMiX:
Их скорее ругают за воплощение идеи в виде Zuma (ну или что там у майкрософта сейчас) и iTunes :) По крайней мере, во времена пользования айподом, тунец на винде — это был тормозной кромешный ужас.
Ух блин. Откуда только эта Zuma всплыла :D Надо взять себя в руки и наконец выспаться, да %)
Согласен — фреймворк Android не очень хорошо продуман а исходные коды оставляют ощущение некоторой «неряшливости» (ИМХО). Но тем не менее «это все» работает.
Позабавила issue http://code.google.com/p/android/issues/detail?id=16024&can=1&q=layout%20programmatically&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
Называть Андроид user-friendly — это, кхм, слегка кривить душой.
Ну например, попробуйте найти будильник в их чертовой системе, если у вас нет htc-шного виджета с часами на глагне. (И то, я, например, обнаружил эту фишку через полгода только.)

Андроид хорош исключительно тем, что в свалке разнообразного говна в его маркете можно найти абсолютно всё что угодно, под любую самую извращенную задачу. Хочешь .ape, wv, wma lossless проигрывать? Не вопрос, какие-то энтузиасты на коленке сделали плейер. Хочешь apache? На тебе.

Соответственно, если ты гик и хочешь мобилу под всякие нестандартные задачи или вообще просто любишь странные извращения — Андроид твой выбор. Если тебе нужен ui без дурацких затупов, юзабилити которого не выглядит так, что его разрабатывали под какими-то веществами — тебе к Apple или Microsoft.
имхо, не стоит так сильно утрировать: Андроид стоит где-то по центру в пирамиде ОС/технологий, в которой чем выше, тем удобнее пользоваться, но менее удобно программировать (iOS на вершине?), а чем ниже, тем хуже пользователю, но легче программисту (Qtopia?).
Конечно, есть и исключения вроде ужасного юзабилити и страшного программинга, но у лидеров рынка как раз все прозаично.
> iOS на вершине?
Дело довольно субъективное, мне вот как-то под iOS программировать проще. Даже не смотря на то, что опыт в андроиде вдвое больший.
Хотя, правда, по-началу очень напрягал синтаксический винегрет Objective-C.
у меня было тоже самое. на мой взгляд писать тривиальные задачи под iOS гораздо легче, а вот для каких-то нестандартных решений Android продoставляет гораздо больше возможностей.
Видел отзыв к iPad еще к первой версии. Человек которому нужен был «ui без дурацких затупов» не мог год закачать свою музыку и видео, пока кто то не подсказал, что их можно просто переносить мышью. Человек также писал, что каждый раз для скачивания музыки ему надо было садиться за компьютер. Также у него был iPhone 3G на котором он не мог сменить звонок, пока не нашел какой то хак, где надо менять данные музыкального файла…
На Microsoft же например многие ругаются, что нет возможности записывать звонки, ну и при отсуствие карт памяти говорили (сейчас конечно решено, я говорю что пред и текущее состояние на рынке)
Андроид на данный момент позволяет и музыку качать через любую прогу (да хоть какой нить платный магазин) ставить мелодию на звонок без проблем. Да и вообще много всего полезного и нужного без дополнительных операций.
Но в общем то у каждой ОС есть свои недостатки.
> и при отсуствие карт памяти говорили

У Microsoft с мобильными осями вообще смешно, точнее грустно. В самых старых Windows CE карты памяти поддерживались (у меня сохранились Palmsize PC с WinCE 2.0 1998м с CompactFlash, Handheld PC того же года не только с CF, но и с PCMCIA-слотом, телефон (MPx200) на WinCE 2002 года с поддержкой SD-карт), а в новых Windows Phone урезали всё что можно, т.е. похоже просто берут пример с iPhone…

В погоне за новой модой убили нормальную полноценную гик-френдли мобильную ОС, печаль.
Ms ушел с рынка гик френдли. Что может быть более гик френдли, чем открытая ОС на тысячях девайсов основанная на Linux?
Ну, как раз эта статья, которую мы тут обсуждаем, показывает, что и в андроиде всё пока очень далеко от идеала. В WinCE хоть какая-то системность была в API, а Android именно что перенял стиль Linux, в котором нет единого подхода к интерфейсам. Возможно это к лучшему, но для разработчика сложнее.
Кстати вполне можно написать прослойку к API, с дополнительными функциями и вызовом выбора файла и т.д. И чтобы при смене API надо было просто обновить версию доп. API.
Вот в том-то и дело, что функции, которые как бы ожидаются от ОС (и которые в тех же виндах еще года с 1990го, а скорее и с 80х), тут еще «надо написать».
> В погоне за новой модой убили нормальную полноценную гик-френдли мобильную ОС, печаль.

Так и есть, для своего времени, WinCE/PocketPC/WindowsMobile была очень открытой и развитой системой, более открытой и развитой, чем Android — для нашего. И дело тут конечно не в закрытости Android'а как технологии, а в опопсовливании всей идеи компьютера-в-кармане, просто современному поколению не приходит в голову, что есть файлы и их можно сохранить в нужное тебе место… (по крайней мере, маркетологи утверждают, что они довели современное поколение до такого состояния).
Как API может быть user friendly? А система в целом является user friendly, когда API намекает что-то хорошее программисту и даёт ему удобства.
Android 1.6? Долго же Вы ждали, чтобы написать этот пост :)
Да просто так сошлось. Решил выйти из unreg в полноценные пользователи хабра и одновременно сел допиливать программку, вспомнилось, как оно всё было — ну вот так и сложилось.
Диалога выбора файла стандартно нет, но можно запустить интент с Intent.ACTION_PICK, который кроме всяких там фотогалерей поддерживают многие файлменеджеры. Правда, насчет выбора именно папки (а не файла) не уверен, но попробовать стоит.
Да, есть целый проект — Open Intents, который предлагает стандарты (в стиле Internet RFC), как делать на Android'е важные и полезные вещи, с особым цинизмом не реализованные Google'ом.

И выбор файла из произвольного места — это самый первый Intent, реализованный как в референсном OI Filemanager, так и в куче других файл-менеджеров.

Вопрос в другом IMHO — почему авторы программ не знают о таких базовых вещах (самым базовым тезисом является конечно «Android в поставке от Google не пригоден для использования для мало-мальски серьезных вещей»).
Не очень понятно, вы предлагаете вместе с любой программой ставить на устройство ещё и ваш референсный OI Filemanager, или кучу других файл-менеджеров?

Я предполагаю, что вы задаете это вопрос с точки зрения разработчика (для пользователя проще: хочешь — ставь, не хочешь — нет). Тогда то, что *вашу* программу пользователю надо ставить вас не смущает? Так вот да, у вас как у разработчика 3 варианта: 1) забить; 2) притянуть стороннюю либу для диалога выбора файла и интегрировать в ваше приложение (писать самому однозначно doesn't scale); 3) пользоваться замечательными возможностями платформы по интеграции с другими приложениями, пусть даже не все полезные приложения сразу интегрированы производителем голой системы — у community-то все есть.

Вот рекомендуемая схема для варианта 3: послать Intent на выбор файла, если он не отработан (т.е. у пользователя нет подходящего файл-менеджера), выдать пользователю fallback-activity, где например строка ввода с путем к файлу, текст «если бы у вас был совместимый файл-менеджер, вы могли бы выбрать файл приятно» и кнопка «Скачать рекомендуемый файл-менеджер из маркета». Рекомендовать лучше что-то простое и бесплатное, как упомянутый OE Filemanager.
Спасибо, буду иметь в виду.
Я пробовал. Если мы исходим из сферического юзера в вакууме, то у андроида 2.2 и 2.3 файл-менеджера по умолчанию нет. И этот интент обрабатывает музыкальный проигрыватель и даёт выбирать файлы только по своей маске или из MediaStore или фотогалерея с аналогичным ограничением. Произвольный файл можно выбрать, только если стоит сторонний файл-менеджер.
Огромное Вам спасибо за замечательную программу! Мне так этого не хватало долгие девять месяцев.
Обнаружил, что программа некорректно работает с системными звуками на Samsung Galaxy S2.

Сохраняем:
*SMSRingtone* = /system/media/audio/notifications/S_Buubles.ogg

Тут же восстанавливаем:

Установлен звонок /system/media/audio/notifications/S_Buubles.ogg для *SMSRingtone*

Вроде бы всё нормально. Идём в настройку звуков, а там:

«Уведомления по умолчанию — Неизвестная мелодия вызова»
Проверил — устанавливаются мелодии.
На какой версии андроид проверяете? Сколько времени прошло после перезагрузки? audio manager отдупляется одним из последних при reset.
Андроид 4.0.4. Восстанавливаю сразу же после сохранения без перезагрузки.
Забыл уточнить — все пользовательские звонки сохраняются нормально, в том числе и те, где используются системные звуки. Проблемы только с оповещением смс.
Да, вы правы.
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, s)
работает, а ровно тот же код, но для sms
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, s)
— нет. И никаких ощибок не возвращает. Я пока не знаю, что это, буду думать, пока идей нет.
Наткнулся на ошибку. RC не может восстановить рингтоны для контактов, имя которых состоит из трёх слов.
Вы правы. Проверю и исправлю. Спасибо!
Проверил. Работает. И для контакта с Именем Отчеством и Фамилией, и для контакта с именем из трёх и четырёх слов восстанавливает корректно.
На каком конкретно примере у вас не получилось?
Всё оказалось проще. Дело было не в именах, а в файлах рингтонов. Если у файла расширение MP3 большими буквами, привязка не восстанавливается. Переименовал все файлики, чтобы mp3 было маленькими буквами и всё заработало.
Sign up to leave a comment.

Articles