В настройках есть интервал через который опрашивается GPS. И если этот интервал 20-30 минут то фактически аккумулятор не страдает, но если поставит 2 минуты то конечно за день посадит аккумулятор.
У меня запоминается маршрут передвижения. Да и есть настройки в которых можно указать время начала отслеживания и время окончания. Можно также задать интервал, через который будут определяться координаты.
А установка интервала опроса GPS у вас только на девайсе происходит? Или на сервере тоже можно? Думается что для особо беспокойных родителей было бы удобно устанавливать некоторые параметры через сервер.
Ну в самом начале вы написали, что проблема в убийстве фонового процесса если нету опроса gps в течении 10 минут. Не понимаю просто как в таких условиях вы делаете экономию энергии с интервалом в 20-30 минут и собственно ждущий режим, при котором приложение не должно (насколько я понимаю) вообще опрашивать датчик.
Или под опросом датчика вы имеете ввиду не запрос координат, а что-то менее энергозатратное? Просто с разработкой под телефоны пока незнаком, поэтому могу чего-то не понимать.
Постараюсь ответить подробнее. Определение координат не происходит моментально. Это немного непредсказуемый процесс, который зависит от того сколько спутников нашел GPS и т.д. Через интервал времени указанный в настройках я включаю GPS (хотя это не правильно так говорить) на 20 секунд, чтоб точность определения координат была максимальной. А каждые 9 минут я опрашиваю GPS чисто номинально пол секунды, только для того, чтоб iOS не убила фоновый процесс.
Теперь понятно, т.е., условно говоря, чем дольше запрос к датчику, тем больше времени у него на поиск спутников и тем точнее данные. Хотя звучит все равно очень затратно.
Спасибо.
Вы почти правы. Но когда телефон в кармане спутники вполне видны. У меня при тестировании погрешность по базовым станциям была 1500 метров в городе. В комментарии выше речь шла об энергопотреблении, и я объяснял что GPS как раз и нужно время чтоб найти спутники и рассчитать координаты, по этому за одну секунду его опросить нельзя, а в это время «подсовываются» координаты определённые по базовым станциям.
в процессе «поиска» текущей точки — может занести и в лес и в речку :) Просто сперва идет данные A-GPS, но через некоторое время (когда появились данные с GPS), координата становится точнее и точнее. В итоге показывает что надо. Думаю на 3G также
«А у меня в настройках максимальный интервал через который определяются координаты 30 минут, по этому пришлось, независимо от настроек сделать таймер и каждые 9 минут опрашивать GPS приемник.»
Значит фактический срок опроса 9 минут. Я так понимаю, что при настройке в 19 минут, то телефон будет опрашивать 9+9+1? Как же тогда 20-30 минут меньше едят батарею?
Как предложение — сделать разные интервалы опроса: зачем опрашивать каждые 5 минут положение во время занятий в школе?
Ну вы не сравнивайте включение GPS секунд на 10-15 (пока спутники найдет, и.т.д.) и просто полсекундное обращение к GPS, только для того, чтоб приложение осталось работать в фоне.
Тоже недавно решил попробовать себя в этом деле, не знаете как можно отправить в app store приложение не платя 100енотов, так как зарабатывать на этом я точно не собираюсь, а попробовать интересно?
Вы говорите, что при определении координат по вышкам сотовой связи погрешность составляет до 1500 метров, но как тогда определяются координаты, пока ребенок в здании школы?
В школе скорее всего есть wi-fi точки и по ним координаты телефон может определить куда точнее чем по вышкам. Ну и если ребенок сидит у окна и вокруг нет высоких зданий вполне может быть что и GPS сможет спутники увидеть.
Да и потом главная функция как я понимаю именно понять момент когда он выходит из школы. =)
То есть это для дисциплинированных детей, которые с уроков не сбегают? Которых не похитят на перемене со школьного двора?
Это для только задумчивых детей, которые после школы могут после кафе-мороженного пойти в магазин игрушек, а после этого в кино?
Созрела идея: если вы знаете источник координат (сотовый/спутниковый), то показывать на карте последний спутниковый (перед входом в школу). Под крышей школы метания сотовых координат ±1500метров за побег/похищение не засчитывать.
Если именно спутниковые координаты поплыли в промежутке 8-14, то смс-звонок родителям.
Как раз во дворе GPS работает. На карте всегда показывается точность определения координат и если она меньше 500 метров я понимаю что ребенок в помещении. Я не думаю что сразу звонок родителям, хотя какую то смс-ку можно отправить. Вообще есть простор для доработок.
Я вроде постарался все осветить как с технической точки зрения, так и прохождение ревю у apple. Ни чего такого, что нельзя найти в доках apple или в интернете я не использовал.
Дальше, должен появиться аксессуар для смарфона, который будет брать анализ крови каждые 30 минут с 18:00 до 23:00, пока ребёнок гуляет, а то мало ли чем он там занимается.
Скорее в обозримом будущем это будет амулет на шею который записывает видео со звуком + может быть и запахи и передает в облако которое анализирует что-бы ребенок чем-то не тем не занялся =)
Доверие доверием, но родители все равно предпочитают знать, чем догадываться где ребенок и что он делает. =)
Это из подобной серии, но пока для отслеживания самого себя (что конечно клево и я эту штуку тоже хочу конечно, еще подобный fitBit и амулет от филипса или типа того) — но родителям интересно именно отследить что с детьми происходит, причем желательно в реалтайме =)
В следующем году.
Причём намного больше, чем анализ крови — меряет давление, пульс, электрическое сопротивление кожи и т.д. и т.п., анализирует данные, передаёт на сервер, подаёт сигнал носителю в случае опасности.
Я гуглял во дворе и меня орали в окно. Норм. Я не имел права покидать территорию двора или заходить за соседний дом, т.е. пропадать из зоны видимости. Так и жили, если родители заботливые.
Наверное ни разу не бегали вместо всяких «кружков» к друзьям играть в компьютер? Ну не поверю. А теперь представьте, что этого всего у вас не будет. И как? Почему-то когда мы все дети, мы считаем себя взрослыми и ворчим на чрезмерный контроль, а сами, только вышедши из детского возраста уже думаем, что это же дети, им доверять нельзя. Вечная проблема…
Вообще сейчас мало чего изменилось, я по прежнему на связи. И это хорошо.
По поводу компа — у меня он был лучший на районе. Так что в основном ко мне бегали.
Я когда маленький был вообще специально спрятался и наблюдал, как меня ищут. Так маме чуть скорую не пришлось вызвать. А мне хорошо влетело. Дети есть дети.
Да, с айфоном будет ещё веселее. Ребёнок решил проверить, как его родители «любят» и положил свой айфон в какой-нибудь мусоровоз. Дальше сюжет будет такой же, ребёнку влетит.
Два месяца. Включая 2 недели «бодания» с Apple. Сам функционал не сложен, много времени я потратил на интерфейс и отладку приложения. Только одна отладка заняла недели 3 (как раз было лето и при поездке на море подключал телефон к ноутбуку и ехал пока не садился аккумулятор в ноутбуке. Потом смотрел логи. И корректировал код.
Сам хотел задать такой вопрос, но раз ответа от автора топика нет, поиск по хабру тут же дал, наприер, такое: habrahabr.ru/blogs/macosxdev/127038/ Там и названия книг есть. ;)
Не боитесь ребенку айфон давать? Фиг с ним если просто отберут, но ведь может и по лицу получить от гопников каких-нибудь. Меня вот это сильно останавливает.
А как работает схожее с вашим по функционалу приложение Google Latitude?
Его можно даже прибить — оно будет продолжать посылать координаты на свой сервер.
Отключается только в настройках айфона запретом GPS для приложения.
Этого я не знаю, может Apple поделился с ними какими то секретами, которыми не делится с обычными разработчиками. Но насчет в выключенном состоянии это я сомневаюсь.
Попробуйте установить эту программу, активировать трэкинг, расшарить положение с другим гуглоаккаунтом, потом закрыть приложение, прибив его в списке запущенных приложений.
У меня сейчас нет iOS-девайсов под рукой, поэтому не могу потестировать, переживёт ли оно ребут. Но выключение переживало, потому я и подумал, что приложения могут как-то регистрироваться в качестве сервисов.
Сегодня проверил. Рассказываю все как есть (плюс вода и плюс мои домыслы) :)
Начиная с версии iOS 4 в которой появилась многозадачность при перезагрузке устройства система как бы запускает все приложения которые были запущены до перезагрузки. Хотя похоже это происходит формально — иконка в панели задач есть но реально приложение стартанет если на нее нажать. Во всяком случае Скайп так себя ведет.
Похожая функциональность добавлена в настольную ОС Lion которая по умолчанию запускает все программы запущенные в момент выключения.
Но то о чем вы говорите из другой области.
Если мне не изменяет память начиная с версии iOS 4.0 в API добавлена возможность для приложений зарегистрироваться на уведомление при значительном изменении координат телефона. Эта функциональность направлена на всяческие приложения для социальных сетей которые могут обновлять статус и местоположение пациента. Правда насколько я понял используется для этого информация сотовых вышек. Во всяком случае чтобы инициировать событие. Latitude, например, довольно точно показывает положение товарища. Все таки оно использует GPS для этого. Но вполне возможно что инициирует событие перемещение относительно сотовых вышек.
Сегодня специально проверил запущено ли приложение Google Latitude у товарища обновление местоположения которого я вижу. И как я и подозревал, приложение не было запущено. Получается, если это не баг и хитрость Гугла, приложение Google Latitude получает управление будучи как бы не запущенным. Возможно так и задумано.
Отключается это в самом приложении опцией Background Updating.
Да и вообще с текущей реализацией многозадачности и «замораживанием» запущенных приложений при переключении в другое само понятие «запущенного» приложения становится размытым. :)
Я внимательно все прочитал, но так и не понял зачем было написано это приложение. Вернее не так, зачем — это я понял, было интересно попрактиковаться в написании под iOS. Вернее спросить так: какие задачи решает это приложение?
Из постановки проблемы было видно, что состоит она в том, что нельзя дозвониться ребенку. Наверное надо было писать приложение с помощью которого можно дистанционно включить звук? Понятия не имею возможно ли это на iOS, но это то, что требовалось. С данным приложением дозвониться так и не получится, задача не решена.
Идем далее. Наверное хотим быть спокойны, что знаем где ребенок.
замечательная настройка «каждый день приложение будет автоматически «просыпаться» в 8.00 и завершаться в 15.00»
Что будете делать, если в 15.00 ребенка нет дома, а ваше приложение экономит аккумулятор? Все-таки заходить в Find my iPhone, которое «другое, не такое, не мое, и вообще какое-то противное», но работает когда это необходимо?
Поставьте другие настройки. Никто не мешает вам поставить интервал 00:01-23:59. Звук включить дистанционно нельзя. Дальше не понял. Я ничего не рекламирую. Я рассказываю свой про свой опыт, какие задачи ставились и как достигались. Если мое приложение поможет еще кому то решить схожую проблему буду только рад. Каждый может поставить то приложение, которое ему больше нравится. Мое приложение конечно не без недостатков, но его скачивают и устанавливают.
Я с этого начал. Расскажите какая задача ставилась и как решилась.
Настройку со временем работы я упомянул именно потому что «приложение писалось для себя», значит я предполагаю, что вы ей пользуетесь. Как будете поступать в случае, если приложение уснуло не дома?
Однако приложения могут издавать звуки даже если «рычажок» телефона в положении «без звука». Это отлично демонстрирует, например, Sygic, озвучивая маршрут даже в режиме «без звука» у телефона.
Вот и надо было делать функцию дистанционного включения «дилилиньканья» через свое приложение, типа «включи звук, я пять раз звонил уже!!».
Я про включение звука говорил.
И я еще спрошу. А маршрут реально так важен? А зачем? Ведь обычно нужно знать просто «где в данный момент», а каким путем — дело десятое.
Я думаю важен, иначе я бы все это не затевал. А пользовался бы апловской прогой найти телефон. Я же не буду все время перед компьютером сидеть. А так раз и получил маршрут.
Вы принципиально никогда не даете ответ на мой вопрос «зачем».
Я предполагал, что от программы которая строит маршрут можно получить маршрут. Варианта А так раз и получил… текущее положение недостаточно?
Мне недостаточно. И другим пользователям моего приложения тоже. Мне нужен был маршрут моего ребенка. Хотя бы для того чтоб если телефон пропадет из виду видеть последнюю локацию.
Последнюю, потому что предполагается, что она будет наиболее близкой к неизвестной текущей, верно? Значит все-таки плавно приходим к тому, сам трек-то и не нужен, нужна знать все-таки текущее местонахождение.
Повод есть, но чувствую пока еще не готов. Хотя думаю над этим. Тут хабражители, пишущие под андроид, хотят написать что то подобное для андроида. И вот если это объединить, чтоб с андроида можно было узнавать координаты iPhone и на оборот, т.к. родителей согласных дать телефон с андроидом ребенку в школу гораздо больше тех, кто готов дать iPhone. Вот тогда можно будет подумать над этим.
Поздравляю) Но хотелось бы узнать с чего конкретно начали изучение программирования под ios? Что читали, писали ли сначала мелкие прожки дабы закрепить знания?
Не могу сказать, что не устроил, просто у него гораздо шире предназначение. Это приложение для общения и в том числе он решает задачу определения координат. И даже в App Store он находится в разделе social networking. Я же сделал приложение решающее более узкую задачу. Настроил, запустил в фоне и все.
«И самое главное, хочется опровергнуть миф о том, что время одиночек в App Store прошло, и настало время монстров с гигантскими рекламными бюджетами. Думаю, что если приложение реально решает проблемы людей оно будет популярно.»
Забыли добавить — «бесплатное приложение будет популярно». Потому что раздавать что-то бесплатно и продавать что-то — это две большие разницы. И далеко не факт, что ваше приложение было бы столь же популярно, если бы оно стоило денег. Наглядный пример: habrahabr.ru/blogs/android/125529/
Приложение ценой около 3$ купили около 40 человек, а скачали бесплатно (за 1 день) — сто тысяч.
Так что ваше заявление о развенчивании мифа мне кажется немного сомнительным.
А в целом — было интересно почитать, хотя совсем не разработчик и не айфоновладелец.
Конечно «за деньги», статистика была бы совсем другой. Я считаю, что платными надо выкладывать доработанные и «отточенные» приложения. Свое приложение, я пока таким не считаю. Но и на бесплатных приложениях можно зарабатывать на рекламе. Просто мое работает в фоне и реклама в нем бессмысленна. А никому не нужное приложение не будут скачивать даже бесплатно. Думаю что сравнивать Android market и App Store не совсем корректно, это немного разные вещи.
Мне не кажется это сильно некорректным, в чем такая сильная разница между этими маркетами?
Естественно, что бесполезное приложение никто и даром не скачает. Но проблема в том, что маркеты насыщены приложениями и очень многим платным можно найти тот или иной бесплатный аналог.
Насчет заработка на рекламе — не знаю, не совсем уверен что это принесет сколько-нибудь значимый доход.
P.S. Да, предложение работы и все остальное, что вы перечислили — это тоже весьма неплохо, но все-таки это не доход в явном виде.
«Но вот беда, в школе заставляют переключать мобильный в режим «без звука», а переключить его обратно он всегда забывает.»
А на иОС нет приложений, в которых можно составить расписание переключения профилей и полностью настроить несколько разных профилей? На Андроиде таких приложений как минимум 3 (из самых расспространенных). Пользуюсь одним в режиме ночь/в пути/работа/в пути/дом/ночь и уже забыл как вручную переключать профили.
На IOS нельзя трогать основные ф-ции устройства (в целях защиты казуального юзера от установки кучи того, не знаю чего и последующего разочарования/жалоб в Apple).
Трудный путь новичка в топ 5 русского App Store