Объединение событий геозоны

Иллюстрации

Показать все

Изобретение относится к объединению событий геозоны. Технический результат - уменьшение использования энергии и увеличение срока эксплуатации аккумулятора в мобильном вычислительном устройстве. Для этого местоположение вычислительного устройства определяется и местоположение интересующей области, т.е. географической области, называемой геозоной, идентифицируется. Множество геозон может быть идентифицировано посредством устройства, и различные геозоны могут быть ассоциированы с различными программами на устройстве. Операционная система устройства реализует множество различных периодов работы для устройства, включающих в себя период экономии ресурсов, в течение которого некоторые программы типично не планируются для работы, и период выполнения, в течение которого такие программы типично планируются для работы. Система идентифицирует события геозоны, которые происходят, когда устройство входит или выходит из геозоны. Система сохраняет запись событий геозоны для каждой из множества геозон и предоставляет программе выбранные события из таких событий геозоны в момент времени, когда программа планируется для работы на устройстве во время периода выполнения операционной системы. 3 н. и 15 з.п. ф-лы, 6 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

[0001] Поскольку вычислительная технология развивается, все больше и больше мощных мобильных устройств становятся доступными. Например, смартфоны становятся обычным явлением. Мобильность таких устройств привела в результате к различным типам разрабатываемой функциональности, таких как функциональность на основе местоположения, в которой некоторые действия предпринимаются устройством на основе местоположения устройства. В то время как эта функциональность имеет множество преимуществ, не обходится без проблем. Одна такая проблема заключается в том, что программа может пытаться получать уведомления о местоположении устройства более часто, чем ожидается от программ, которые должны получать уведомления. Это может приводить в результате к обходу управлений устройством, относящихся к частоте, с которой программы, как ожидается, должны работать, что ведет к повышенному использованию энергии и уменьшенному сроку эксплуатации аккумулятора в устройстве и, таким образом, плохому восприятию пользователем во время использования устройства.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0002] Данная сущность предусмотрена для того, чтобы в упрощенной форме представить набор идей, которые дополнительно описываются ниже в подробном описании. Эта сущность не имеет намерением ни идентифицировать ключевые признаки или важнейшие признаки заявляемого предмета изобретения, ни использоваться так, чтобы ограничивать объем заявляемого предмета изобретения.

[0003] В соответствии с одним или более аспектами, обнаруживается возникновение одного или более событий геозоны для вычислительного устройства в течение периода экономии ресурсов операционной системы, в течение которого некоторые программы не запланированы для работы. Запись событий геозоны для каждой из множества геозон сохраняется. Когда программа, ассоциированная с по меньшей мере одной из множества геозон, запланирована для работы в течение периода выполнения операционной системы, указание одного или более событий геозоны для по меньшей мере одной из множества геозон из записи событий геозоны предоставляется программе.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0004] Одинаковые номера используются на всех чертежах для того, чтобы ссылаться на аналогичные признаки.

[0005] Фиг. 1 иллюстрирует примерную систему, в которой объединение событий геозоны, обсуждаемое в данном документе, может быть использовано.

[0006] Фиг. 2 – это блок-схема, иллюстрирующая примерную систему, реализующую объединение событий геозоны в соответствии с одним или более вариантами осуществления.

[0007] Фиг. 3 иллюстрирует примерный пользовательский интерфейс, который может быть отображен пользователю, чтобы предоставлять возможность пользователю выбирать, должны ли местоположения быть определены в соответствии с одним или более вариантами осуществления.

[0008] Фиг. 4 иллюстрирует пример различных периодов работы в соответствии с одним или более вариантами осуществления.

[0009] Фиг. 5 – это блок-схема последовательности операций, иллюстрирующая примерный процесс объединения событий геозоны в соответствии с одним или более вариантами осуществления.

[0010] Фиг. 6 иллюстрирует примерную систему, которая включает в себя примерное вычислительное устройство, которое является показательным для одной или более систем и/или устройств, которые могут реализовывать различные технические приемы, описанные в данном документе.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

[0011] Объединение событий геозоны обсуждается в данном документе. Местоположение вычислительного устройства определяется, и местоположение интересующей области идентифицируется. Интересующая область является географической областью, которая также называется геозоной. Множество геозон могут быть идентифицированы посредством вычислительного устройства, и различные геозоны могут быть ассоциированы с различными программами на вычислительном устройстве. Операционная система вычислительного устройства реализует множество различных периодов работы для вычислительного устройства, включающих в себя период экономии ресурсов, в течение которого некоторые программы типично не планируются для работы, и период выполнения, в течение которого такие программы типично планируются для работы. Система вычислительного устройства идентифицирует события геозоны, которые происходят, когда вычислительное устройство входит или выходит в геозону. Система сохраняет запись событий геозоны для каждой из множества геозон и предоставляет программе выбранные события из этих событий геозоны (например, события геозоны для самого последнего входа и выхода из каждой геозоны, ассоциированной с программой) во время, когда программа планируется для работы на вычислительном устройстве в течение периода выполнения операционной системы.

[0012] Фиг. 1 иллюстрирует примерную систему 100, в которой объединение событий геозоны, обсуждаемое в данном документе, может быть использовано. Система 100 включает в себя вычислительное устройство 102, которое может быть любым из множества типов устройств, хотя типично является мобильным устройством. Например, вычислительное устройство 102 может быть смартфоном или другим беспроводным телефоном, портативным компьютером или нетбуком, планшетным компьютером или записной книжкой, миниатюрным компьютером, мобильной станцией, развлекательным устройством, устройством воспроизведения звука и/или видео, игровой консолью, передвижным компьютером и т.д. Вычислительное устройство 102 типично называется мобильным устройством, поскольку устройство 102 спроектировано или предназначено, чтобы перемещаться во множество различных местоположений (например, носится пользователем вместе с ним или ней, когда пользователь идет в различные местоположения).

[0013] Местоположение вычислительного устройства 102 может быть определено с помощью любого из множества различных технических приемов, таких как триангуляция беспроводной сети (например, Wi-Fi), сотовое позиционирование, позиционирование по глобальной навигационной спутниковой системе (GNSS), позиционирование по сетевому адресу (например, адресу протокола Интернета (IP)) и т.д., как обсуждается более подробно ниже. Различные технические приемы определения местоположения могут иметь различные систематические погрешности или ассоциированные неопределенности. Например, технический прием определения местоположения может быть точным до 10 метров (м) или 10 километров (км). Точная позиция вычислительного устройства 102, таким образом, точно не указывается, а иллюстрируется как область 104, окружающая вычислительное устройство 102. Область 104 представляет неопределенность в определенном местоположении или позиции вычислительного устройства 102, таким образом, хотя вычислительное устройство определяется как находящееся в конкретном местоположении или позиции (например, приблизительно в центре области 104), вычислительное устройство 102 может фактически быть где угодно в пределах области 104.

[0014] Система 100 также иллюстрирует множество геозон 112, 114, 116 и 118. Каждая геозона 112-118 может быть любым из множества различных интересующих мест для вычислительного устройства 102, пользователя вычислительного устройства 102, программы, работающей на вычислительном устройстве 102, и т.д. Например, геозона 112-118 может быть домом пользователя, местом работы пользователя, ресторанами или организациями, которые могут быть посещены пользователем, образовательными учреждениями, общественными службами (например, больницами или библиотеками), географическими местами (например, городами или штатами) и т.д.

[0015] Местоположение геозон 112-118 сохраняется в или иначе доступно для вычислительного устройства 102. Следует отметить, что различные пользователи вычислительного устройства 102 могут необязательно иметь различные сохраненные или доступные геозоны. Вычислительное устройство 102 является мобильным и может входить и выходить из геозон 112-118. В любое данное время вычислительное устройство 102 может быть в одной из геозон 112-118 или не в геозоне. Если вычислительное устройство 102 определяется как находящееся в области, которая охватывает конкретную геозону, тогда вычислительное устройство 102 называется находящимся внутри или в пределах этой конкретной геозоны. Однако, если вычислительное устройство 102 определяется как не находящиеся в области, которая охватывает конкретную геозону, тогда вычислительное устройство 102 называется находящимся за пределами или не в пределах этой конкретной геозоны. Также могут возникать ситуации, в которых две или более геозон перекрываются, в таком случае вычислительное устройство 102 может быть в двух или более геозонах 112-118 в одно время. Следует отметить, что иллюстрация фиг. 1 существует не в масштабе, и что геозоны 112-118 могут быть, и типично являются, значительно большими по размеру, чем вычислительное устройство 102.

[0016] В иллюстрированном примере область 104 не пересекает какую-либо из геозон 112-118, и, таким образом, вычислительное устройство 102 находится за пределами каждой из геозон 112-118. Однако, если область 104, по меньшей мере, частично перекрыла одну из геозон 112-118, тогда вычислительное устройство 102 возможно находится внутри геозоны, которая перекрывается. То, находится ли вычислительное устройство 102 внутри геозоны или за пределами геозоны в таких ситуациях, может быть определено различными способами, например, на основе наличия перекрывания, насколько большого перекрывания геозон, и т.д.

[0017] Фиг. 2 – это блок-схема, иллюстрирующая примерную систему 200, реализующую объединение событий геозоны в соответствии с одним или более вариантами осуществления. Система 200 может быть реализована посредством одного устройства, такого как вычислительное устройство 102 на фиг. 1, или альтернативно множества устройств, таких как вычислительное устройство 102 и один или более серверных компьютеров, доступных по сети (например, сотовой или другой беспроводной телефонной сети, Интернету и т.д.). Система 200 включает в себя один или более модулей 202 определения местоположения, модуль 204 определения геозоны, модуль 206 обнаружения события геозоны, модуль 208 инициирования геозоны и хранилище 210 данных.

[0018] Хранилище 210 данных хранит различные данные, используемые посредством технических приемов, обсуждаемых в данном документе. Хранилище 210 данных может быть реализовано с помощью любого из множества различных устройств хранения, таких как системная память (например, оперативное запоминающее устройство (RAM)), флэш-память или другая твердотельная память, магнитные диски, оптические диски и т.д. Данные, сохраненные в хранилище 210 данных, идентифицируют множество геозон, включая в себя данные 220 геозоны для каждой из множества геозон. Данные 220 геозоны могут быть получены из различных источников, например, от распространителя или дилера хранилища 210 данных, который хранит данные в хранилище 210 данных, из программы, работающей на вычислительном устройстве, реализующем систему 200, от другого устройства или службы и т.д. Данные геозоны для геозоны описывают границы геозоны, а также критерии, которые должны быть удовлетворены для того, чтобы геозона была инициирована.

[0019] Критерии, которые должны быть удовлетворены, могут ссылаться на вхождение устройства в геозону, выход из геозоны, пребывание в геозоне в течение конкретного интервала времени (например, по меньшей мере, порогового интервала времени, не более порогового интервала времени и т.д.), период времени для геозоны (например, время начала и время окончания, время начала и продолжительность), их комбинацию и т.д. Различные дополнительные критерии также могут необязательно быть включены, такие как состояние системы, которое должно быть удовлетворено. Например, критерии могут включать в себя то, включен или выключен дисплей вычислительного устройства, имеет ли вычислительное устройство связность сети (например, Интернет-связность), состояние питания вычислительного устройства (например, имеет ли вычислительное устройство, по меньшей мере, пороговый интервал оставшегося срока службы аккумулятора), и т.д.

[0020] Одно или более действий, которые предпринимаются в ответ на инициирование геозоны (удовлетворяемые критерии), могут также быть включены как часть данных геозоны. Любое из множества действий может быть предпринято, когда геозона инициируется, такое как уведомление конкретной программы, отображение конкретного контента или иное воспроизведение посредством вычислительного устройства, данные геозоны удаляются из хранилища 210 данных, их комбинации и т.д. Множество различных действий могут быть предприняты на основе способа, которым геозона инициируется, такие как одно действие, предпринятое в ответ на вхождение устройства в геозону, и другое действие, предпринятое в ответ на выход устройства из геозоны.

[0021] Границы геозоны могут быть указаны любым из множества различных способов. Например, геозона может быть указана как позиция (например, координаты широты и долготы) и радиус, как набор позиций (например, координаты широты и долготы углов геозоны), как последовательность векторов и т.д. В обсуждениях в данном документе ссылка выполняется на геозоны, приблизительно круглые по форме. Однако следует отметить, что геозоны могут быть любыми из множества правильных геометрических форм (например, треугольниками, прямоугольниками, восьмиугольниками и т.д.), другими геометрическими формами (например, произвольными формами или пятнами) и т.д.

[0022] Хранилище 210 данных иллюстрируется на фиг. 2 как являющееся частью системы 200. Следует отметить, что данные, хранящиеся в хранилище 210 данных, могут быть получены из программ 230 (например, из программ 230, когда они загружаются в вычислительное устройство, реализующее систему 200). Альтернативно, одна или более программ 230 могут включать в себя хранилище данных, которое используется в дополнение к или вместо хранилища 210 данных.

[0023] Геозоны могут быть использованы множеством различных способов. Например, геозона и действие, которое должно быть предпринято, могут предупреждать пользователя вычислительного устройства, реализующего, по меньшей мере, часть системы 200, когда он приближается к автобусной остановке, предоставлять пользователю купон, когда он входит в торговый центр или магазин, уведомлять родителя, когда его ребенок покинул школу или пришел домой, отображать информацию о погоде для текущего местоположения, когда пользователь путешествует в другой город, и т.д.

[0024] Данные, сохраненные в хранилище 210 данных, могут также включать в себя дополнительные данные, используемые с техническими приемами, обсуждаемыми в данном документе. Например, хранилище 210 данных может включать в себя запись событий 222 геозоны, которые являются событиями геозоны, обнаруженными посредством модуля 206 обнаружения события геозоны, как обсуждается более подробно ниже.

[0025] Модули 202 определения местоположения включают в себя один или более модулей, которые определяют местоположение вычислительного устройства 102. В иллюстрированном примере модули 202 определения местоположения включают в себя Wi-Fi-модуль 212, GNSS-модуль 214, модуль 216 сетевого адреса и сотовый модуль 218. Следует отметить, однако, что эти модули 212-218 являются примерами, и что модули 202 определения местоположения не должны включать каждый из модулей 212-218, и/или что модули 202 определения местоположения могут включать в себя один или более дополнительных модулей, которые определяют местоположение вычислительного устройства 102 различными способами. Например, модули определения местоположения могут включать в себя MEMS (микроэлектромеханические системы), камеры, микрофоны и т.д.

[0026] Wi-Fi-модуль 212 использует Wi-Fi-сигналы, например, триангуляцию Wi-Fi-сигналов, чтобы определять местоположение вычислительного устройства 102. Wi-Fi-модуль 212 может принимать сигналы от различных беспроводных точек доступа, включающие в себя идентификатор конкретной беспроводной точки доступа и/или конкретной беспроводной сети, из которой принимается сигнал. Например, беспроводная точка доступа может отправлять адрес управления доступом к среде (MAC) беспроводной точки доступа, идентификатор основных наборов служб (BSSID) беспроводной сети, поддерживаемой беспроводной точкой доступа, и т.д. Wi-Fi-модуль 212 может также измерять мощность (например, значения индикатора мощности принятого сигнала (RSSI)) этих принимаемых сигналов. Следует отметить, что Wi-Fi-модуль 212 может, в любое данное время для любой данной позиции вычислительного устройства, принимать сигналы от множества беспроводных точек доступа. Wi-Fi-модуль 212 может хранить или иначе осуществлять доступ к записи беспроводных точек доступа, мощностей сигнала и соответствующих местоположений, чтобы определять местоположение вычислительного устройства в любое конкретное данное время, беспроводные точки доступа, от которых сигналы принимаются, и мощность этих сигналов в конкретное данное время. Альтернативно, Wi-Fi-модуль 212 может предоставлять указание беспроводных точек доступа, от которых сигналы принимаются, и мощность этих сигналов в конкретное данное время удаленной службе (например, доступной через любую из множества различных типов сетей), которая определяет и возвращает Wi-Fi-модулю 212 указание местоположения вычислительного устройства в это конкретное данное время.

[0027] GNSS-модуль 214 использует GNSS-позиционирование, чтобы определять местоположение вычислительного устройства 102, определяя местоположение вычислительного устройства на основе конкретного числа спутников (например, четырех или более спутников), от которых GNSS-модуль 214 может принимать сигналы или иначе связываться. GNSS-модуль 214 может реализовывать GNSS-функциональность с помощью множества различных технологий, включающих в себя, но не только, систему глобального позиционирования (GPS), глобальную навигационную спутниковую систему (GLONASS), навигационную систему BeiDou (или Compass), систему позиционирования Galileo, их комбинацию и т.д. GNSS-модуль 214 работает любым из множества публичных и/или патентованных способов, чтобы определять, при наличии одного или более спутников, от которых GNSS-модуль 214 может принимать сигналы или иначе связываться в любое конкретное данное время, местоположение вычислительного устройства в это конкретное данное время.

[0028] Модуль 216 сетевого адреса использует позиционирование по сетевому адресу, чтобы определять местоположение вычислительного устройства 102. Используемый сетевой адрес может быть любым из множества сетевых адресов, таким как IP-адрес вычислительного устройства. Модуль 216 сетевого адреса может хранить или иначе осуществлять доступ к записи IP-адресов или диапазонов адресов и соответствующих местоположений, чтобы определять местоположение вычислительного устройства в любое конкретное время, при наличии IP-адреса, назначенного вычислительному устройству в конкретное данное время. Альтернативно, модуль 216 сетевого адреса может предоставлять указание IP-адреса вычислительного устройства в конкретное данное время удаленной службе (например, доступной через любую из множества различных типов сетей), которая определяет и возвращает модулю 216 сетевого адреса указание местоположения вычислительного устройства в это конкретное данное время.

[0029] Сотовый модуль 218 использует сотовое позиционирование, чтобы определять местоположение вычислительного устройства 102. Сотовый модуль 218 может принимать сигналы от различных сотовых приемопередатчиков, включающие в себя идентификатор конкретного сотового приемопередатчика (например, вышки сотовой связи или идентификатор приемопередатчика), от которого сигнал принят. Сотовый модуль 218 может также измерять мощность этих принятых сигналов. Следует отметить, что сотовый модуль 218 может, в любое данное время для любой данной позиции вычислительного устройства, принимать сигналы от множества сотовых приемопередатчиков. Сотовый модуль 218 может поддерживать или иначе осуществлять доступ к записи сотовых приемопередатчиков, мощностей сигнала и соответствующих местоположений, чтобы определять местоположение вычислительного устройства в любое конкретное время при наличии сотовых приемопередатчиков, от которых сигналы принимаются, и мощности этих сигналов в конкретное данное время. Альтернативно, сотовый модуль 218 может предоставлять указание приемопередатчиков, от которых сигналы принимаются, и мощность этих сигналов в конкретное данное время удаленной службе (например, доступной через любую из множества различных типов сетей), которая определяет и возвращает сотовому модулю 218 указание местоположения вычислительного устройства в это конкретное данное время. Дополнительно или альтернативно, сотовый модуль 218 может наблюдать за изменениями состояния при низкой мощности и предоставлять уведомления (например, модулю 206 обнаружения события геозоны), предоставляющие возможность обнаружения перемещения при низкой мощности без необходимости постоянного опроса.

[0030] Местоположения, определенные посредством модулей 202 определения местоположения, типично являются координатами широты и долготы, хотя местоположение может альтернативно быть указано другими способами. Каждый из модулей 202 определения местоположения имеет ассоциированную неопределенность в местоположении, которую он определяет, также называемую систематической погрешностью или оцененной систематической погрешностью местоположения. Величина этой неопределенности может быть определена различными способами, например, сообщается посредством самого модуля определения местоположения, предварительно конфигурируется в или иначе доступна другим модулям системы 200 (например, модулю 206 обнаружения события геозоны), и т.д. Неопределенность приводит в результате к области неопределенности позиции для местоположения, определенного посредством модуля определения местоположения, область неопределенности позиции является областью, в которой вычислительное устройство 102 может фактически быть для определенного местоположения. В одном или более вариантах осуществления область неопределенности позиции является приблизительно круглой областью с местоположением, определенным посредством модуля определения местоположения, являющимся приблизительно центром круглой области, и радиус приблизительно круглой области является радиусом погрешности, определенным в качестве неопределенности для модуля определения местоположения. Альтернативно, область неопределенности позиции может быть описана с помощью различных других правильных или других геометрических форм. Таким образом, область неопределенности позиции для модуля определения местоположения может быть функцией пространственного распределения погрешностей. Аппроксимация функции пространственного распределения погрешностей может быть плосковершинным распределением по области, хотя различные другие аппроксимации или описания функции пространственного распределения погрешностей могут альтернативно быть использованы.

[0031] В одном или более вариантах осуществления местоположение определяется посредством модулей 202 определения местоположения только после приема согласия пользователя на это. Это согласие пользователя может быть явным согласием, когда пользователь предпринимает утверждающее действие на запрос, что местоположение должно быть определено посредством модулей 202 определения местоположения, прежде чем какое-либо такое местоположение определяется. Альтернативно, это согласие пользователя может быть явным отказом, когда пользователь предпринимает утверждающее действие на запрос, что местоположение не должно быть определено посредством модулей 202 определения местоположения. Если пользователь не выбирает явный отказ от определения местоположения, тогда подразумевается согласие пользователя, чтобы определять его или ее местоположение. Кроме того, следует отметить, что местоположение, определенное посредством модулей 202 определения местоположения, может быть сохранено в вычислительном устройстве, принимающем определенное местоположение (например, вычислительном устройстве 102 на фиг. 1), и не должно передаваться другим устройствам или службам.

[0032] Альтернативно, согласие пользователя может быть предоставлено для конкретных программ и отменено для других программ. В этом случае, информация о местоположении будет определяться только, когда пользователь дал согласие, по меньшей мере, одной программе, для которой используется отслеживание геозоны. Информация о местоположении используется, чтобы определять вход и/или выход только из тех геозон, которые принадлежат согласованным программам. Остальные геозоны из не получивших одобрения программ не отслеживаются.

[0033] Фиг. 3 иллюстрирует примерный пользовательский интерфейс, который может быть отображен пользователю, чтобы предоставлять возможность пользователю выбирать, должны ли местоположения быть определены в соответствии с одним или более вариантами осуществления. Отображается окно 300 управления местоположением, включающее в себя описание 302, объясняющее пользователю, почему информация о местоположении определяется. Ссылка 304 на заявление о конфиденциальности также отображается. Если пользователь выбирает ссылку 304, отображается заявление о конфиденциальности системы 200, объясняющее пользователю, как пользовательская информация поддерживается конфиденциальной.

[0034] Дополнительно, пользователь имеет возможность выбирать зависимый переключатель 306, чтобы явно соглашаться на определение информации о местоположении, или зависимый переключатель 308, чтобы явно отказываться от определения информации о местоположении. После того как зависимый переключатель 306 или 308 выбран, пользователь может выбирать кнопку 310 "OK", чтобы сохранять выбор. Следует понимать, что зависимые переключатели и кнопка "OK" являются лишь примерами пользовательских интерфейсов, которые могут быть представлены пользователю, чтобы явно соглашаться или явно отказываться от определения информации о местоположении, и что множество других традиционных технических приемов пользовательских интерфейсов могут альтернативно быть использованы. Система 200 на фиг. 2 затем переходит к определению местоположения вычислительного устройства, или неопределению местоположения вычислительного устройства, в соответствии с выбором пользователя.

[0035] Возвращаясь к фиг. 2, модуль 204 определения геозоны определяет одну или более геозон, идентифицированных в хранилище 210 данных, для которых определение должно выполняться относительно того, инициируется ли геозона. Данные для многочисленных различных геозон могут быть сохранены в хранилище 210 данных, и одна или более из этих геозон выбирается посредством модуля 204 определения геозоны. Модуль 204 определения геозоны может выполнять это определение множеством различных способов, например, на основе текущего расстояния между геозонами и вычислительным устройством, на основе размеров (охваченных областей) геозон, на основе которых геозона является самой (или почти самой) точной, как обсуждается более подробно ниже, и т.д. Одна или более геозон, которые определяются посредством модуля 204, являются геозонами, которые считаются более вероятными для входа или выхода на основе различных критериев, таких как текущее местоположение вычислительного устройства, и такие одна или более геозон могут быть фокусом модуля 204 до тех пор, пока критерии не изменятся. Однако, следует отметить, что модуль 204 определения геозоны может определять, инициируется ли геозона, для любой из геозон в хранилище 210 данных.

[0036] Модуль 206 обнаружения события геозоны получает текущее местоположение вычислительного устройства с регулярными или нерегулярными интервалами и обнаруживает, происходит ли событие геозоны. Эти интервалы могут быть выбраны динамически на основе текущих условий (например, приблизительного расстояния до ближайшей геозоны, энергетических характеристик для вычислительного устройства, оцененной скорости перемещения вычислительного устройства и т.д.). Событие геозоны ссылается на вхождение устройства в геозону, выход из геозоны или пребывание в геозоне в течение конкретного интервала времени (например, находится в геозоне и не выходит из геозоны). Модуль 206 обнаружения события геозоны может оценивать неопределенность, ассоциированную с определенным местоположением, относительно размера геозоны для того, чтобы определять, находится ли вычислительное устройство внутри геозоны или за пределами геозоны. Альтернативно, модуль 206 обнаружения события геозоны может использовать местоположение, определенное посредством модуля определения местоположения, чтобы определять, находится ли вычислительное устройство внутри геозоны или за пределами геозоны, безотносительно неопределенности, ассоциированной с определенным местоположением. Модуль 206 обнаружения события геозоны может также отслеживать, находится ли вычислительное устройство внутри или за пределами геозоны, в динамике по времени, и, таким образом, узнает, переместилось ли вычислительное устройство изнутри геозоны за пределы геозоны, переместилось ли вычислительное устройство из-за пределов геозоны внутрь геозоны, интервал времени, в течение которого вычислительное устройство было внутри геозоны, и т.д.

[0037] Модуль 206 обнаружения геозоны включает в себя модуль 224 хранения события геозоны, и в ответ на обнаружение события геозоны посредством модуля 206 модуль 224 хранения события геозоны сохраняет обнаруженное событие геозоны в записи 222 события геозоны. Запись 222 события геозоны может быть реализована множеством различных способов, таких как база данных, список событий геозоны для каждой геозоны, и т.д. Сохранение обнаруженного события геозоны ссылается на сохранение данных, идентифицирующих событие геозоны и необязательно различные аспекты события геозоны. Данные, сохраненные для обнаруженного события геозоны, могут включать в себя указание того, является ли событие геозоны входом в геозону или выходом в геозону, указание (например, идентификатор) геозоны, в которую осуществлен вход или выход, продолжительность, в течение которой вычислительное устройство находилось в (или было в) геозоне, программу, ассоциированную с геозоной (например, программу, которая должна быть уведомлена о событии геозоны), временную отметку (например, дату и/или время) того, когда событие геозоны было обнаружено, и т.д. Сохраненные данные могут также идентифицировать геозону, для которой событие геозоны обнаружено, или события геозоны могут быть сохранены способом, в котором идентификация геозоны, для которой событие геозоны обнаружено, является характерной (например, события геозоны могут быть добавлены в список для геозоны, каждая геозона имеет различный список). Продолжительность, в течение которой вычислительное устройство находилось в или было в геозоне, может быть определена различными способами, например, посредством модуля 206 обнаружения события геозоны, наблюдающего за тем, как долго он там находился после осуществления входа в геозону, определяя время, которое прошло с тех пор, как последнее событие входа в геозону для геозоны было обнаружено (или время, которое прошло между тем, когда самое последнее событие выхода из геозоны для геозоны было обнаружено, и тем, когда предыдущее событие входа в геозону для геозоны было обнаружено), и т.д.

[0038] В одном или более вариантах осуществления каждое событие геозоны, обнаруженное посредством модуля 206 обнаружения события геозоны, сохраняется в хранилище 210 данных, например, в упорядоченном списке, отсортированном по времени возникновения события геозоны. Запись 222 события геозоны может включать в себя события геозоны для различных продолжительностей, таких как последние 24 часа, последняя неделя и т.д. Альтернативно, запись 222 события геозоны может включать в себя, для каждого события геозоны, самое последнее событие выхода из геозоны для геозоны и самое последнее событие входа в геозону для геозоны. Каждый раз, когда новое событие геозоны обнаруживается для геозоны, ранее записанное событие геозоны того же типа (выход или вход в геозону) может быть заменено вновь обнаруженным событием геозоны. Таким образом, в некоторых вариантах осуществления только самое последнее событие выхода из геозоны для геозоны и самое последнее событие входа в геозону для геозоны записываются для геозоны, в то время как в других вариантах осуществления множество событий входа и выхода из геозоны записываются для геозоны (например, записываются все события входа и выхода из геозоны). Записанные события геозоны для геозоны могут также быть удалены из хранилища 210 данных в ответ на различные события, такие как то, что приложение, которое предоставило данные геозоны для геозоны, инсталлируется или иначе удаляется из системы 200).

[0039] Модуль 208 инициирования геозоны анализирует критерии, ассоциированные с геозоной, и определяет, удовлетворяются ли критерии. Это определение выполняется, по меньшей мере, частично на основе возникновения одного или более событий геозоны, которые определяются посредством модуля 206 обнаружения события геозоны. В ответ на удовлетворение критериев модуль 208 определяет, что геозона инициируется, и предпринимает соответствующее действие. Предпринятое действие может быть ассоциировано с данными геозоны для инициированной геозоны, сохраненными в хранилище 210 данных, или может быть определено другими способами, например, предварительно конфигурируется в модуле 208 инициирования геозоны, получается от другого модуля или устройства и т.д.

[0040] В одном или более вариантах осуществления действие, предпринятое модулем 208 инициирования геозоны в ответ на инициирование геозоны, является уведомлением одной или более программ 230 о том, что геозона была инициирована. Одна или более программ 230 могут включать в себя многообразные различные типы программ, такие как приложения, модули или компоненты операционной системы и т.д. Одна или более программ 230, которые должны быть уведомлены (также называемые программами 230, ассоциированными с инициированной геозоной), могут быть идентифицированы различными способами, например, конфигурируются в модуле 208 инициирования геозоны, идентифицируются как часть данных геозоны для геозоны в хранилище 210 данных, получаются от другого модуля или службы, и т.д. Программа 230 может быть оповещена о событии геозоны, которое произошло, также как необязательно о дополнительной информации (например, что вычислительное устройство было в пределах геозоны в течение, по меньшей мере, порогового интервала времени). Программа 230 может затем предпринимать действие, которое она желает, на основе инициируемой геозоны.

[0041] Модуль 208 инициирования геозоны включает в себя модуль 226 сообщения о событии геозоны, который управляет уведомлением программ о том, что геозона была инициирована. Модуль 226 сообщения о событии геозоны выбирает одно или более событий геозоны из записи 222 о событии геозоны, например, для каждой геозоны, ассоциированной с программой 230, самое последнее событие выхода из геозоны (самое последнее событие геозоны, которое является выходом из геозоны) и самое последнее событие входа в геозону (самое последнее событие геозоны, которое является входом в геозону). Модуль 226 сообщения о событии геозоны объединяет события геозоны для каждой геозоны, ассоциированной с программой 230, и предоставляет программе 230 набор событий геозоны для геозон, ассоциированных с программой 230.

[0042] В одном или более вариантах осуществления геозона инициируется в ответ на событие геозоны (вход или выход из геозоны), и модуль 226 сообщения о событии геозоны уведомляет программу об этом событии геозоны. Альтернативно, модуль 226 сообщения о событии геозоны может принимать во внимание другие критерии, ассоциированные с геозоной, в определении того, уведомлять ли программу о событии геозоны, и уведомлять программу, только если такие дополнительные критерии удовлетворяются. Например, если критерии указывают, что Интернет-связность желательна, но в настоящее время нет доступа в Интернет, тогда модуль 226 сообщения