Евгений Музыченко

Previous Entry Share Next Entry
Лучше отсутствие совета, чем хреновый совет
emuzychenko
Воистину, блин.

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

В сети хренова гора инструкций по добавлению собственных звуков - как для полных идиотов, так и для продвинутых. Но все они едины в том, что достаточно одной таблетки создать в любом из разделов каталог /media/audio, в нем создать подкаталоги ringtones, alarms и notifications, в которые записать MP3-файлы, как эти звуки тут же станут доступны в телефоне. Иногда указывалось, что может потребоваться перегрузить телефон, и уж тогда-то непременно настанет счастье.

Я еще тогда старательно проделал все указанные действия, но звуки в телефоне не появились. Перегружал дополнительно, перегружал с очисткой кэшей, создавал эти каталоги во внутренней и внешней памяти, делал первые буквы большими и маленькими, менял права доступа - без толку. Записывал даже в системный каталог к стандартным звукам - все равно без толку.

После какой-то очередной итерации вдруг обнаружил, что звуки появились, причем в двух экземплярах каждый. Поскольку к тому времени в телефоне уже было по три копии каждого звука, подумал, что какой-то набор не загрузился, а какой именно - выяснять уже было лень. Пошел по пути "работает - не трогай". :)

Через несколько месяцев после смены SD-карты звуки снова пропали - пришлось плясать с бубном те же танцы, и с тем же результатом - звуки появились только после энной итерации, когда я уже почти отчаялся. Какая именно последовательность действий привела к успеху - опять-таки не отследил.

И вот, сегодня утром телефон немножко упал, при этом выключился, а когда включился - пожаловался на ошибки SD-карты. Прогон теста под виндой выявил несколько кросслинков на некритичных файлах, которые были благополучно исправлены, однако звуки после этого слетели опять. На этот раз я решил подойти к вопросу радикально, вычитал в сети, что для обновления списка звуков нужно сделать очистку данных системной службы Media Storage. Стало еще веселее, ибо после очистки из списков пропали вообще все звуки, и после перезагрузки не восстановились, хотя везде пишут, что перезагрузка обязана такие ситуации устранять.

Снова занялся камланием с очисткой кэшей и копированием/переименованием файлов, одновременно с пристальным гуглением всего, что относится к Media Storage и Media Scanner. И вот тут-то в одном из попавшихся обсуждений и мелькнуло, что формирование списка доступных для выбора звуков происходит асинхронно. То есть, эта служба запускается лишь периодически, и периодически же сканирует изменения в файловой системе, поэтому от появления нового файла до его попадания в списки звуков проходит некоторое время, определяемое параметрами конкретной прошивки.

В прошивке моего Zopo C2 это время оказалось около 6-7 минут. Разумеется, прежде у меня ни разу не возникало мысли о том, что при отсутствии добавленных звуков в соответствующих списках нужно тупо подождать, а не перегружаться снова. :) Разумеется, каждая очередная перезагрузка отодвигала момент сканирования, и появление звуков в списках я обнаруживал лишь после того, как уставал возиться с телефоном, отвлекался на что-нибудь другое, а затем возвращался к нему снова, повторял очередную серию шаманских действий, обнаруживал "вдруг возникшие" звуки, и гадал, которая же серия за это отвечает.

Заодно, как оказалось, это пересканирование вылечило и другую проблему - при подключении к компьютеру в режиме MTP андроид упорно не хотел экспортировать некоторых файлов, добавленных в файловую систему через ADB. Я пытался выяснить это на форуме, однако мне ответили, что это глюк прошивки, и нужно с этим смириться. А после очистки данных Media Storage и пересканирования все эти файлы стали доступны.

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

  • 1
>И ведь хоть бы одна собака написала, что после добавления звуковых файлов может потребоваться какое-то время для их регистрации...

вменяемой документации по архитектуре от разработчиков нет (кто такие эти медиасканер и медиасторадж, как-когда запускаются). вот и начинается цирк по мотивам слухов, самолечение.

ЧСХ, почти в любых крупных или полузакрытых проектах так - большой тех.долг, отсутствие общего описания принципов работы ключевых подсистем и способов их взаимодействия.

  • 1
?

Log in

No account? Create an account