8可分析運(yùn)動(dòng)模式、頻域特性和/或其他信號(hào)特征,以確定正在操作或攜帶(例如,在手中、口袋中、車中等)移動(dòng)設(shè)備的用戶的當(dāng)前活動(dòng)。例如,主處理器328可分析運(yùn)動(dòng)信號(hào)以確定與移動(dòng)設(shè)備相關(guān)聯(lián)的用戶例如是在步行、跑步、駕車還是騎行。如果主處理器328確定用戶正在駕車,則主處理器328可打開定位系統(tǒng)332以例如提供移動(dòng)設(shè)備的位置。如果用戶在步行,則主處理器328例如可調(diào)用算法或功能以統(tǒng)計(jì)用戶334的步數(shù)。如果客戶端應(yīng)用程序已向運(yùn)動(dòng)圍欄系統(tǒng)300注冊(cè)以在用戶跑步時(shí)被通知,則主處理器328可通知所注冊(cè)的客戶端該用戶當(dāng)前正攜帶移動(dòng)設(shè)備跑步。
[0042]示例件i寸程
[0043]圖4是示例性運(yùn)動(dòng)圍欄過(guò)程的流程圖。例如,如上所述,可由已被配置有運(yùn)動(dòng)圍欄標(biāo)準(zhǔn)的移動(dòng)設(shè)備來(lái)執(zhí)行運(yùn)動(dòng)圍欄過(guò)程。在一些具體實(shí)施中,移動(dòng)設(shè)備內(nèi)的運(yùn)動(dòng)圍欄客戶端(例如,應(yīng)用程序、功能、實(shí)用程序、操作系統(tǒng)特征等)可注冊(cè),以在發(fā)生與感興趣活動(dòng)對(duì)應(yīng)的運(yùn)動(dòng)時(shí)被通知。通知的形式可以是消息、事件、調(diào)用或基于感興趣活動(dòng)(例如,跑步、騎行、駕車等)被移動(dòng)設(shè)備的運(yùn)動(dòng)圍欄系統(tǒng)檢測(cè)到而觸發(fā)的其他操作。
[0044]在步驟402處,可測(cè)量移動(dòng)設(shè)備的運(yùn)動(dòng)。例如,移動(dòng)設(shè)備可被配置有可測(cè)量移動(dòng)設(shè)備的運(yùn)動(dòng)的一個(gè)或多個(gè)運(yùn)動(dòng)傳感器。運(yùn)動(dòng)傳感器可包括加速度計(jì)、陀螺儀和/或其他類型的運(yùn)動(dòng)傳感器。測(cè)量的運(yùn)動(dòng)可隨時(shí)間產(chǎn)生用于指示運(yùn)動(dòng)在各個(gè)時(shí)間點(diǎn)處的幅度的運(yùn)動(dòng)信號(hào)。
[0045]在步驟404處,可將所測(cè)量的運(yùn)動(dòng)與和第一運(yùn)動(dòng)圍欄相關(guān)聯(lián)的運(yùn)動(dòng)標(biāo)準(zhǔn)進(jìn)行比較。例如,可將運(yùn)動(dòng)信號(hào)與運(yùn)動(dòng)標(biāo)準(zhǔn)諸如頻率、幅度等閾值進(jìn)行比較。運(yùn)動(dòng)標(biāo)準(zhǔn)可包括關(guān)于從運(yùn)動(dòng)信號(hào)導(dǎo)出的其他運(yùn)動(dòng)測(cè)量的閾值。運(yùn)動(dòng)標(biāo)準(zhǔn)可包括運(yùn)動(dòng)模式(例如,重復(fù)頻率和或幅度模式),以確定移動(dòng)設(shè)備的運(yùn)動(dòng)是否落在第一運(yùn)動(dòng)圍欄內(nèi)或在其外部。例如,運(yùn)動(dòng)信號(hào)內(nèi)存在運(yùn)動(dòng)模式(例如,任何運(yùn)動(dòng)模式)可以是限定運(yùn)動(dòng)圍欄的標(biāo)準(zhǔn)。例如,如果在運(yùn)動(dòng)信號(hào)內(nèi)沒(méi)有模式,則移動(dòng)設(shè)備可保持在當(dāng)前運(yùn)動(dòng)圍欄內(nèi)。如果在運(yùn)動(dòng)信號(hào)內(nèi)有運(yùn)動(dòng)模式,則移動(dòng)設(shè)備已跨過(guò)運(yùn)動(dòng)圍欄進(jìn)入另一個(gè)運(yùn)動(dòng)域中。
[0046]在步驟406處,移動(dòng)設(shè)備可基于比較從第一運(yùn)動(dòng)域過(guò)渡到第二運(yùn)動(dòng)域。例如,如果已超過(guò)了針對(duì)第一運(yùn)動(dòng)圍欄的運(yùn)動(dòng)標(biāo)準(zhǔn)(例如,被超過(guò)的閾值,所觀測(cè)到的運(yùn)動(dòng)類型),在可將移動(dòng)設(shè)備從當(dāng)前運(yùn)動(dòng)域跨過(guò)第一運(yùn)動(dòng)圍欄并且移動(dòng)到第二運(yùn)動(dòng)域中。
[0047]在步驟408處,可打開或從睡眠狀態(tài)喚醒用于第二運(yùn)動(dòng)域的設(shè)備部件。例如,移動(dòng)設(shè)備可在低功率模式中啟動(dòng)。在移動(dòng)設(shè)備從第一運(yùn)動(dòng)域過(guò)渡到第二運(yùn)動(dòng)域時(shí),可打開(或從睡眠狀態(tài)喚醒)移動(dòng)設(shè)備的部件,以分析由移動(dòng)設(shè)備的運(yùn)動(dòng)傳感器產(chǎn)生的運(yùn)動(dòng)信號(hào)。例如,在處于第一運(yùn)動(dòng)域中時(shí),移動(dòng)設(shè)備可處于其中僅打開運(yùn)動(dòng)傳感器的低功率模式中。在移動(dòng)設(shè)備從第一運(yùn)動(dòng)域過(guò)渡到第二運(yùn)動(dòng)域時(shí),運(yùn)動(dòng)傳感器可打開微控制器,以對(duì)運(yùn)動(dòng)信號(hào)執(zhí)行附加分析,如上所述。
[0048]在步驟410處,可將所測(cè)量的運(yùn)動(dòng)與和第二運(yùn)動(dòng)圍欄相關(guān)聯(lián)的運(yùn)動(dòng)標(biāo)準(zhǔn)進(jìn)行比較。例如,不同于第一運(yùn)動(dòng)圍欄的第二運(yùn)動(dòng)圍欄可與運(yùn)動(dòng)標(biāo)準(zhǔn)相關(guān)聯(lián)。例如,用于第二運(yùn)動(dòng)圍欄的運(yùn)動(dòng)標(biāo)準(zhǔn)可描述比第一運(yùn)動(dòng)圍欄更復(fù)雜的運(yùn)動(dòng)類型。第二運(yùn)動(dòng)圍欄標(biāo)準(zhǔn)可包括運(yùn)動(dòng)模式、從運(yùn)動(dòng)信號(hào)變換產(chǎn)生的值、從隨時(shí)間分析運(yùn)動(dòng)信號(hào)產(chǎn)生的數(shù)據(jù)和/或其他類型的運(yùn)動(dòng)特性。
[0049]在步驟412處,可基于運(yùn)動(dòng)標(biāo)準(zhǔn)來(lái)確定設(shè)備處于第二運(yùn)動(dòng)域內(nèi)。例如,如果運(yùn)動(dòng)信號(hào)不滿足或超過(guò)用于第二運(yùn)動(dòng)圍欄的運(yùn)動(dòng)標(biāo)準(zhǔn),則移動(dòng)設(shè)備將不跨過(guò)第二運(yùn)動(dòng)圍欄進(jìn)入另一運(yùn)動(dòng)域中。因此,可確定移動(dòng)設(shè)備處于第二運(yùn)動(dòng)域內(nèi)。
[0050]在步驟414處,可確定注冊(cè)對(duì)第二運(yùn)動(dòng)域或過(guò)渡感興趣的應(yīng)用程序或功能。例如,運(yùn)動(dòng)圍欄系統(tǒng)可維護(hù)用于識(shí)別對(duì)與運(yùn)動(dòng)類型和/或運(yùn)動(dòng)域相關(guān)聯(lián)的活動(dòng)感興趣的移動(dòng)設(shè)備的應(yīng)用程序和/或功能的查找表。在確定移動(dòng)設(shè)備處于特定運(yùn)動(dòng)域內(nèi)時(shí),運(yùn)動(dòng)圍欄系統(tǒng)可參考查找表以確定哪些應(yīng)用程序或功能(例如,運(yùn)動(dòng)圍欄客戶端)對(duì)特定運(yùn)動(dòng)域感興趣。在一些具體實(shí)施中,運(yùn)動(dòng)圍欄系統(tǒng)可基于運(yùn)動(dòng)信號(hào)中觀測(cè)到的運(yùn)動(dòng)模式來(lái)識(shí)別與運(yùn)動(dòng)域相關(guān)聯(lián)的特定活動(dòng)。在基于運(yùn)動(dòng)信號(hào)來(lái)識(shí)別活動(dòng)時(shí),運(yùn)動(dòng)圍欄系統(tǒng)可使用查找表來(lái)確定哪些應(yīng)用程序和/或功能對(duì)觀測(cè)到的活動(dòng)的發(fā)生感興趣。
[0051]在步驟416處,可調(diào)用注冊(cè)的應(yīng)用程序或功能。例如,在運(yùn)動(dòng)圍欄系統(tǒng)找到與移動(dòng)設(shè)備當(dāng)前所在的特定運(yùn)動(dòng)域或所識(shí)別的活動(dòng)相關(guān)聯(lián)的應(yīng)用程序或功能時(shí),可通知應(yīng)用程序或功能該移動(dòng)設(shè)備在運(yùn)動(dòng)域內(nèi)或正在發(fā)生特定活動(dòng)。在一些具體實(shí)施中,通知應(yīng)用程序或功能可包括調(diào)用移動(dòng)設(shè)備的應(yīng)用程序或功能。
[0052]應(yīng)用程序編程接口
[0053]可在本文所述的具體實(shí)施中使用一個(gè)或多個(gè)應(yīng)用程序編程接口(API)。API是由程序代碼部件或硬件部件(在下文中稱為“API實(shí)施部件”)實(shí)施的接口,允許不同的程序代碼部件或硬件部件(在下文中稱為“API調(diào)用部件”)訪問(wèn)和使用由API實(shí)施部件提供的一個(gè)或多個(gè)函數(shù)、方法、流程、數(shù)據(jù)結(jié)構(gòu)、類別和/或其他服務(wù)。API可限定在API調(diào)用部件和API實(shí)施部件之間傳送的一個(gè)或多個(gè)參數(shù)。
[0054]API允許API調(diào)用部件的開發(fā)者(可以是第三方開發(fā)者)利用由API實(shí)施部件提供的指定特征??纱嬖谝粋€(gè)API調(diào)用部件或可存在多于一個(gè)此類部件。API可以是計(jì)算機(jī)系統(tǒng)或程序庫(kù)提供的源代碼接口,以便支持對(duì)來(lái)自應(yīng)用程序的服務(wù)的請(qǐng)求。操作系統(tǒng)(0S)可具有多個(gè)API,以允許運(yùn)行行在0S上的應(yīng)用程序調(diào)用那些API中的一個(gè)或多個(gè)API,并且服務(wù)(諸如程序庫(kù))可具有多個(gè)API,以允許使用服務(wù)的應(yīng)用程序調(diào)用那些API中的一個(gè)或多個(gè)API。在構(gòu)建應(yīng)用程序時(shí)可以編譯或匯編的編程語(yǔ)言來(lái)指定API。
[0055]在一些具體實(shí)施中,API實(shí)施部件可提供多于一個(gè)API,該多于一個(gè)API提供對(duì)由API實(shí)施部件實(shí)施的功能的不同方面的訪問(wèn)。例如,API實(shí)施部件的一個(gè)API可提供第一組功能并可暴露于第三方開發(fā)者,并且API實(shí)施部件的另一個(gè)API可被隱藏(不暴露)并提供第一組功能的子集,并且還提供另一組功能諸如不在第一組功能中的測(cè)試功能或調(diào)試功能。在其他具體實(shí)施中,API實(shí)施部件本身可經(jīng)由下層API來(lái)調(diào)用一個(gè)或多個(gè)其他部件,因此其即是API調(diào)用部件又是API實(shí)施部件。
[0056]API限定在訪問(wèn)和使用API實(shí)施部件的指定特征時(shí)API調(diào)用部件使用的語(yǔ)言和參數(shù)。例如,API調(diào)用部件通過(guò)被API暴露的一個(gè)或多個(gè)API調(diào)用或引用(例如由函數(shù)或方法調(diào)用來(lái)實(shí)施)來(lái)訪問(wèn)API實(shí)施部件的指定特征,并經(jīng)由API調(diào)用或引用使用參數(shù)來(lái)傳送數(shù)據(jù)信息和控制信息。API實(shí)施部件可響應(yīng)于來(lái)自API調(diào)用部件的API調(diào)用通過(guò)API來(lái)返回值。盡管API限定API調(diào)用的語(yǔ)法和結(jié)果(例如,如何引起API調(diào)用以及API調(diào)用做什么),但API可不揭示API調(diào)用如何完成由API調(diào)用指定的函數(shù)。經(jīng)由調(diào)用(API調(diào)用部件)和API實(shí)施部件之間的一個(gè)或多個(gè)應(yīng)用程序編程接口來(lái)傳輸各種API調(diào)用。傳輸API調(diào)用可包括發(fā)出、發(fā)起、調(diào)用(invoking, calling)、接收、返回功能調(diào)用或消息或?qū)ζ渥鞒鲰憫?yīng);換言之,傳輸可描述API調(diào)用部件或API實(shí)施部件的動(dòng)作。API的函數(shù)調(diào)用或其他引用可通過(guò)參數(shù)列表或其他結(jié)構(gòu)發(fā)送或接收一個(gè)或多個(gè)參數(shù)。參數(shù)可以是常數(shù)、按鍵、數(shù)據(jù)結(jié)構(gòu)、對(duì)象、對(duì)象類別、變量、數(shù)據(jù)類型、指針、數(shù)組、列表或指向函數(shù)或方法的指針或援引要經(jīng)由API傳送的數(shù)據(jù)或其他項(xiàng)目的另一種方式。
[0057]此外,數(shù)據(jù)類型或類別可由API提供并由API實(shí)施部件實(shí)施。因此,API調(diào)用部件可使用在API中提供的定義來(lái)聲明變量、使用指向此類類型或類別的指針、使用或?qū)嵗祟愵愋突蝾悇e的常數(shù)值。
[0058]通常,可使用API來(lái)訪問(wèn)由API實(shí)施部件提供的服務(wù)或數(shù)據(jù)或啟動(dòng)執(zhí)行由API實(shí)施部件提供的操作或計(jì)算。以舉例的方式,API實(shí)施部件和API調(diào)用部件可各自為操作系統(tǒng)、庫(kù)、設(shè)備驅(qū)動(dòng)器、AP1、應(yīng)用程序或其他模塊(例如,API實(shí)施部件和API調(diào)用部件可以是彼此相同或不同類型的模塊)中的任一者。在一些情況下,可至少部分地在固件、微碼或其他硬件邏輯部件中實(shí)施該API實(shí)施部件。
[0059]在一些具體實(shí)施中,API可允許客戶端程序使用由軟件開發(fā)工具包(SDK)庫(kù)提供