![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
vegstr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
Возникло желание написать приложение с определенными требованиями. В программировании не силен. На Java никогда не писал. Немного работал с Pascal/Delphi. Поэтому для начала хотел бы узнать - возможно ли в принципе написать такое.
Требования следующие: Программа должна по расписанию через определенные промежутки времени записывать звук с микрофона и уметь его проигрывать. Так же крайне желательно, чтоб записанное можно было скидывать на комп. Прога не должна мешать обычному использованию телефона (звонки/смс/инет и т.п). Необходима возможность настраивать время начала и конца записи, интервал между записями и их длительность. Например - записывать с 08:00 до 23:00 через каждые 30 минут длительностью 10 мин. Прога нужна для телефонов Nokia 5310 и Samsung GT-S5230. Просьба к знающим людям, подскажите, возможно ли такое на этих телефонах? |
|||
|
||||
Kalisnik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
007 не стал бы использовать J2Me, потому что получится в 02 раза дороже. IMHO, я бы пересмотрел форму подачи вопроса(ов).
Это сообщение отредактировал(а) Kalisnik - 21.6.2012, 16:32 |
|||
|
||||
vegstr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
Все намного прозаичнее. 007 и 02 тут абсолютно ни при чем.
![]() Прога не должна скрываться. Надо чтобы она НЕ МЕШАЛА пользоваться телефоном. |
|||
|
||||
Kalisnik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
честно говоря я не совсем компетентен, но надеюсь форумчане меня поправят.
1. Не мешать прога будет только в свернутом виде - но эту функцию поддерживают не все телефоны и нет гарантий ее стабильной работы, т.к. всеми java-приложениями управляет собственно телефон, и если он посчитает что ему не хватает ресурсов, он может запросто Ваше приложение пришлепнуть. На счет Nokia и Samsung не знаю, но в SE свернуть мидлет возможно (ну может в самых древних моделях такая функция отсутствует). 2. Записывать то можно, только хранилище телефона (постоянное хранение данных) не резиновое. На карту памяти телефона java-приложение не пишет на сколько мне известно (может конечно и существуют такие модели телефонов, но это исключение), и на каждой модели телефона размер хранилища данных индивидуален (определяется производителем). Не рассчитывайте на бесчисленные мегабайты памяти - все много скромнее. Так что записывать с 8:00 до 23:00 может просто физически не хватить памяти. И на ПК записанное Вы сможете сбросить только через саму (написанную Вами) программу. Т.к. все данные в телефоне приложение сохраняет в байт-коде и не на всех телефонах доступ к хранилищу телефона открыт пользователю через обычное подключение телефон-компьютер (есть конечно методы выдергивания этих данных и т.д., но это все костыли). И даже если Вы выдерните этот байт-код, то получить из него информацию в оригинальном виде тоже будет непросто - так как методы кодирования данных у каждого производителя телефона свои собственные. ![]() ![]() Я бы порекомендовал диктофон и 1 день Вашего времени - это будет быстрее чем параллельно с написанием программы изучать java. Если такой вариант все же неприемлем, то советую Android ![]() Это сообщение отредактировал(а) Kalisnik - 21.6.2012, 21:40 |
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Соглашусь насчет Android. Если нужно именно решить конкретную задачу, то самое простое - поискать уже готовый диктофон с таймером под андроид.
А под MIDP столкнетесь с довольно большими сложностями и не факт, что в итоге вообще будет работать на этих моделях. |
|||
|
||||
vegstr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
Согласен, что на Android или с каким-либо аппаратным диктофоном было-бы проще. Но дело в том, что в данном случае это просто баловство, своего рода хобби. Если не получится - ничего страшного не произойдет.
![]() Оба телефона поддерживают File Connection API. Я правильно понимаю, что писать на карту памяти они умеют? |
|||
|
||||
Kalisnik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 21.6.2011 Репутация: нет Всего: нет |
Да, умеют. P.S. Видимо поддерживающих File Connection API телефонов не так уж и мало, как мне казалось. ) Это сообщение отредактировал(а) Kalisnik - 22.6.2012, 13:29 |
|||
|
||||
vegstr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
Пытаюсь разобраться с запуском мидлета с помощью PushRegistry.
Правильно ли я понял, что невозможно просто указать определенное время, в которое приложение будет запускаться каждый день, а требуется указать конкретные дату и время запуска и в дальнейшем каждый раз обновлять дату (+1 день например)?
Объясните, плз, как правильно вычислять deltatime в вышеуказанном коде? Допустим надо запустить приложение в 10:00 следующего дня. Описание класса Date читал. Но что-то пока никак не соображу. ![]() Это сообщение отредактировал(а) vegstr - 28.6.2012, 09:27 |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
При использовании File Connection API мидлет должен быть подписан - иначе он перед каждой записью на карту памяти будут просить разрешения.
Если в телефоне симкарта с безлимитным интернетом, можно на компьютере запустить сервер, который будет принимать данные с телефона через интернет. deltatime вычислять не надо - нужно просто указать время запуска приложения (предватительно проверив что это время ещё не наступило) При использовании сервера на компьютере можно возложить планирование записей на компьютер - компьютер посылает на телефон запрос, телефон записывает данные с микрофона и отсылает на компьютер. |
|||
|
||||
vegstr |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
Я в курсе. Он и про использование микрофона спрашивает.
Спасибо за совет. В данной ситуации не особо нужно. Телефон всегда со мной и записи больше на нем нужны, чем на компе.
Можно по-подробнее? Желательно с примером кода. Заранее огромное спасибо! ![]() |
||||||
|
|||||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
|
|||
|
||||
vegstr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
math64,
Спасибо за помощь. С этим разобрался. Теперь возникла другая проблема. Нижеприведенный код нормально работает на Nokia 5310. Создается нормальный аудиофайл, который можно прослушать на компе или телефоне. На Samsung GT-S5230 создается файл нулевой длины, а приложение, когда запись останавливается, выдает ошибку: java.io.IOException: I/O error occurs during commit.
Заработало ![]() Вместо setRecordStream() использовал setRecordLocation() Это сообщение отредактировал(а) vegstr - 3.7.2012, 16:25 |
|||
|
||||
vegstr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.6.2012 Репутация: нет Всего: нет |
Люди добрые, подскажите! Нижеприведенный код нормально работает в эмуляторе. Процедура записи запускается таймером через равные промежутки времени. На телефоне (Samsung s5230) тоже работает в активном приложении. А вот в свернутом состоянии выдает исключение:
javax.microedition.media.MediaException: unable to realize - initialize fail При этом файлы создаются нормально, но нулевой длины. Никак не могу понять в чем дело :(
|
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |