背景技術(shù):
接近(proximity)技術(shù)允許相互接近放置的兩個設(shè)備之間的通信。接近技術(shù)的一個例子即近場通信(Near Field Communication(NFC))是一種從射頻識別(RFID)技術(shù)改進(jìn)的短距離無線技術(shù)。NFC利用彼此靠近的兩個環(huán)形天線之間的磁感應(yīng)來形成他們的連接。NFC允許遠(yuǎn)達(dá)4英寸的設(shè)備之間的無線連接。NFC設(shè)備可以是有源的或無源的。在有源模式下,兩個設(shè)備獨立地為他們的無線電設(shè)備供電。在無源模式下,一個設(shè)備從另一個設(shè)備汲取他的電力。NFC設(shè)備實現(xiàn)方式包括嵌入式NFC芯片、支持NFC的(NFC-enabled)用戶身份模塊(SIM)卡、非易失性存儲卡(例如微型SD卡)和無源的支持NFC的標(biāo)記(tag)或標(biāo)簽(sticker)。另一種接近技術(shù)是TransferJetTM。TransferJetTM支持比NFC更高的速度。因此,TransferJetTM的目標(biāo)是不同于NFC的使用場景,例如高速無線傳輸。再另一種接近技術(shù)使用位置、設(shè)備運(yùn)動和從兩個端點向服務(wù)器報告的時間來確定這兩個端點正在接近。
諸如內(nèi)容共享和支付系統(tǒng)的傳統(tǒng)接近功能被使得能夠在應(yīng)用層面上實現(xiàn)。這需要應(yīng)用開發(fā)者編寫直接與接近技術(shù)進(jìn)行通信的應(yīng)用以使得能夠?qū)崿F(xiàn)多種接近功能。這一般需要開發(fā)者對底層接近技術(shù)具有深刻理解。
技術(shù)實現(xiàn)要素:
本發(fā)明內(nèi)容是為了介紹平臺使能的接近服務(wù)的簡化概念而被提供的,在以下的具體實施方式部分中將對其進(jìn)行進(jìn)一步描述。本發(fā)明內(nèi)容的目的既不是確定所要求保護(hù)的主題的必要特征,也不是用來確定所要求保護(hù)的主題的范圍。
基于平臺的接近服務(wù)使得應(yīng)用能夠預(yù)先準(zhǔn)備(pre-stage)在建立了與另一個設(shè)備的接近連接后將被啟動的接近功能。基于平臺的接近服務(wù)使得應(yīng)用能夠交付多種用戶體驗而無需那些應(yīng)用直接與接近技術(shù)交互?;谄脚_的接近服務(wù)還允許啟動多個接近動作以推進(jìn)接近功能,或者解決預(yù)先準(zhǔn)備的接近功能之間的潛在沖突。從用戶方面來說,基于平臺的接近服務(wù)使得能夠?qū)崿F(xiàn)的多種用戶體驗允許用戶預(yù)先準(zhǔn)備功能,并且接著使他們的設(shè)備進(jìn)入到另一個設(shè)備的附近從而引發(fā)啟動預(yù)先準(zhǔn)備的功能。用于創(chuàng)建接近的一種通用形態(tài)是通過敲擊(tap)的物理手勢。在這樣的一個例子中,用戶用他或她的設(shè)備(例如智能電話或鍵盤或其他)敲擊另一個接近設(shè)備以激活這兩個設(shè)備之間的自動持續(xù)配對。在另一個例子中,用戶將內(nèi)容排入隊列以便與接近設(shè)備共享,并且接著敲擊他或她的設(shè)備以建立與另一個設(shè)備的帶外連接(out-of-band)(例如藍(lán)牙?)從而傳輸隊列中的內(nèi)容。在再另一個例子中,用戶將應(yīng)用放置到多用戶模式,并且接著用他們的設(shè)備敲擊另一個設(shè)備以建立與另一個設(shè)備的帶外連接,從而使得應(yīng)用能夠與在另一個設(shè)備上運(yùn)行的兼容的應(yīng)用對等。
根據(jù)實施方式的基于平臺的接近服務(wù)確定接近事件和連接的聯(lián)合接近上下文(joint proximity context),并且基于聯(lián)合接近上下文啟動多種接近動作。這些接近動作包括顯示具有同意預(yù)先準(zhǔn)備的接近功能、協(xié)商和建立帶外連接、引發(fā)在兩個設(shè)備之間傳輸內(nèi)容以及其他的可選擇選項的用戶界面。在建立了與另一個設(shè)備的接近連接后,基于平臺的接近服務(wù)還引發(fā)用戶界面元素的顯示、音頻聲音的播放和/或設(shè)備振動以警告用戶接近連接的建立和/或接近動作的啟動,從而推進(jìn)預(yù)先準(zhǔn)備的接近功能。提供平臺層面的接近服務(wù)使得應(yīng)用開發(fā)者能夠容易地創(chuàng)建模擬人類交互的用戶體驗,而開發(fā)者并不需要具有由平臺所使用的一個或多個底層接近技術(shù)的知識來創(chuàng)建接近事件和連接。
附圖說明
將參考附圖來闡述具體實施方式部分。在圖中,參考標(biāo)記最左邊數(shù)字標(biāo)識該參考標(biāo)記首次出現(xiàn)的附圖。在不同附圖中使用相同的參考標(biāo)記指示相似或相同的項目。
圖1是可用來使得接近動作能夠為了應(yīng)用或其他操作系統(tǒng)元件通過接近服務(wù)被發(fā)起的示例環(huán)境的示意圖。
圖2是根據(jù)實施方式可用于提供接近服務(wù)的示例設(shè)備的方框圖。
圖3是顯示用于使得預(yù)先準(zhǔn)備的接近功能能夠響應(yīng)于接近連接的建立,為了應(yīng)用和多種操作系統(tǒng)元件而被激活的的示例過程的流程圖。
圖4是顯示用于使用接近連接而啟動并建立預(yù)先準(zhǔn)備的對等連接的示例過程的流程圖。
圖5是顯示用于在接收到來自接近設(shè)備的對等連接邀請后啟動預(yù)先準(zhǔn)備的對等連接的示例過程的流程圖。
圖6是顯示用于通過接近連接啟動預(yù)先準(zhǔn)備的消息傳輸?shù)氖纠^程的流程圖。
圖7是顯示用于啟動預(yù)先準(zhǔn)備的設(shè)備配對功能的示例過程的流程圖。
圖8是顯示用于啟動并建立帶外連接以便使得能夠與接近設(shè)備共享預(yù)先準(zhǔn)備的內(nèi)容的示例過程的流程圖。
圖9是顯示用于在接收到來自接近設(shè)備的內(nèi)容共享邀請后啟動并建立帶外連接的示例過程的流程圖。
圖10是顯示用于從應(yīng)用狀態(tài)推斷預(yù)先準(zhǔn)備的上下文的示例過程1000的流程圖。
具體實施方式
總覽
如上所述,接近技術(shù)使得能夠?qū)崿F(xiàn)彼此接近放置的設(shè)備之間的通信。傳統(tǒng)的接近功能(例如金融交易或內(nèi)容共享)被使得能夠在應(yīng)用層面上實現(xiàn),這需要應(yīng)用開發(fā)者識別他們的應(yīng)用將支持的接近設(shè)備的類型,并且直接將那些應(yīng)用編程到直接到所支持的接近技術(shù)的接口。本公開的實施方式包括平臺層面接近服務(wù)和接近應(yīng)用編程接口(API),該API使得應(yīng)用開發(fā)者能夠通過接近服務(wù)交付多種用戶體驗而無需直接編程到接近技術(shù)。
根據(jù)實施方式的接近服務(wù)代表應(yīng)用和底層接近提供器之間的抽象層。接近提供器是允許通過多種手段確定接近的技術(shù)。例如,一種常用的接近提供器涉及使用無線電信號以便當(dāng)相應(yīng)的無線電場彼此交互從而使得能夠交換接近信息時使得能夠?qū)崿F(xiàn)接近。接近提供器的第二個實施方式可使用諸如GPS的高精度位置服務(wù)以及時間和運(yùn)動來通過中間實用服務(wù)確定接近。此處所描述的接近服務(wù)用作用于通過一個或多個這樣的使用通用或完全不同的方法來確定接近的接近提供器來確定接近的代理(broker)。
根據(jù)實施方式的接近服務(wù)被配置為從應(yīng)用接收注冊(諸如通過使用多種API)以便指示請求了特定的接近功能。依據(jù)建立與另一個設(shè)備的接近連接的接近事件,接近服務(wù)與另一個設(shè)備的接近服務(wù)交換預(yù)先準(zhǔn)備的上下文信息。所述交換包括從另一個設(shè)備接收預(yù)先準(zhǔn)備的上下文信息,以及將預(yù)先準(zhǔn)備的上下文信息傳輸?shù)搅硪粋€設(shè)備。預(yù)先準(zhǔn)備的上下文信息包括已由應(yīng)用(包括操作系統(tǒng)元件)在任一設(shè)備上注冊了的接近功能(有可能的話)的指示。在接近連接期間,可由任一設(shè)備或兩個設(shè)備上的接近服務(wù)實時執(zhí)行基于交換的預(yù)先準(zhǔn)備的上下文信息的進(jìn)一步計算。
接近服務(wù)確定連接的聯(lián)合接近上下文。聯(lián)合接近上下文包括一個或兩個設(shè)備的預(yù)先準(zhǔn)備的上下文信息。基于聯(lián)合接近上下文,接近服務(wù)啟動預(yù)先準(zhǔn)備的接近動作以推進(jìn)注冊的接近功能。如果聯(lián)合接近上下文包括多個注冊的接近功能(例如來自兩個設(shè)備的接近功能)的指示,那么接近服務(wù)可啟動預(yù)先準(zhǔn)備的接近動作以推進(jìn)一些或全部注冊的接近功能。
預(yù)先準(zhǔn)備的接近動作推進(jìn)注冊的接近功能。接近功能包括設(shè)備配對、對等應(yīng)用連接、消息發(fā)布和訂閱、以及內(nèi)容共享。
在一個例子中,聯(lián)合接近上下文包括設(shè)備配對請求的指示。在建立了用戶設(shè)備(例如個人計算機(jī)、膝上型或平板電腦)和配對設(shè)備(例如鍵盤、鼠標(biāo)、照相機(jī)或智能電話)之間的接近連接后,接近服務(wù)引發(fā)提供同意配對的可選擇選項的用戶界面元素的顯示。在從用戶輸入設(shè)備接收到指示用戶同意配對的輸入后,接近服務(wù)協(xié)商帶外連接類型,建立帶外連接,以及提供具有關(guān)于帶外連接的信息的設(shè)備的配對服務(wù)。配對服務(wù)接著使用或不使用進(jìn)一步的用戶交互而與設(shè)備配對。接著配對服務(wù)可以啟動為了使用配對的設(shè)備而必須或有價值的軟件(例如設(shè)備驅(qū)動器或應(yīng)用)的安裝或綁定。
在另一個例子中,聯(lián)合接近上下文包括應(yīng)用注冊的指示以將對等應(yīng)用放置到接近設(shè)備中。在這種情況下,啟動設(shè)備(依據(jù)建立接近連接的接近事件)同時啟動多種帶外連接類型的建立,并使用兩個設(shè)備都知曉的算法來確定他們中的一個以供帶外通信使用。啟動設(shè)備傳遞通信套接字(socket)給應(yīng)用。接收設(shè)備的接近服務(wù)引發(fā)提供同意一個或多個與對等請求相關(guān)的動作的可選擇選項的用戶界面元素的顯示。在從用戶輸入設(shè)備接收到指示用戶同意的輸入后,接近服務(wù)可以執(zhí)行一個或多個步驟,例如但不限于:建立與啟動設(shè)備的帶外連接、發(fā)起對等應(yīng)用、將對等應(yīng)用放到前臺、傳遞上下文信息到運(yùn)行的應(yīng)用(例如前臺應(yīng)用)和發(fā)起應(yīng)用獲取服務(wù)以允許設(shè)備獲得并安裝對等應(yīng)用。
在另一個例子中,聯(lián)合接近上下文包括應(yīng)用有已注冊消息要在一個或多個命名空間(namespace)中發(fā)布,和/或已注冊以訂閱相同或不同命名空間的指示。在建立了接近連接后,接近服務(wù)通過接近連接傳輸和接收發(fā)布的消息。
在另一個例子中,聯(lián)合接近上下文包括共享服務(wù)已注冊隊列中的消息(消息、文件或其他)以便與接近設(shè)備共享的指示。依據(jù)建立接近連接的接近事件,啟動設(shè)備或者協(xié)商并建立帶外連接,或者可替換地同時啟動多個帶外連接并選擇一個以供使用。啟動設(shè)備利用在其上傳輸共享內(nèi)容的套接字提供共享服務(wù)。接收設(shè)備引發(fā)具有同意接收共享內(nèi)容的可選擇選項的用戶界面元素的顯示。在從用戶輸入設(shè)備接收到指示用戶同意的輸入后,接近服務(wù)完成帶外連接的建立,并利用在其上接收共享內(nèi)容的套接字提供他自己的共享服務(wù)。
在另一個例子中,聯(lián)合接近上下文包括從在設(shè)備的用戶界面的前臺上運(yùn)行的應(yīng)用的狀態(tài)推斷的接近功能的指示。在一個非限制例子中,用戶可以已經(jīng)使用應(yīng)用選擇了內(nèi)容。在啟動接近連接后,接近服務(wù)可從用戶已選擇內(nèi)容這個事實來推斷用戶希望與接近設(shè)備共享這些內(nèi)容。因此,聯(lián)合接近上下文包括請求內(nèi)容共享的指示。接近服務(wù)通過發(fā)起共享服務(wù)和建立帶外通信信道以傳輸所選擇的內(nèi)容而推進(jìn)共享。在另一個非限制例子中,設(shè)備可運(yùn)行具有多用戶功能的應(yīng)用,接近服務(wù)可以推斷用戶希望形成對等連接以使得能夠在應(yīng)用進(jìn)行多用戶協(xié)作。因此,聯(lián)合接近上下文包括請求對等連接的指示。接近服務(wù)通過顯示包括啟動對等連接的可選擇選項的用戶界面元素從而推進(jìn)對等連接請求。
實施方式包括保護(hù)設(shè)備防止依據(jù)接近事件啟動的未授權(quán)動作的特征。這些特征幫助保護(hù)設(shè)備的安全和隱私,并且增強(qiáng)用戶體驗。例如,多種實施方式需要用戶同意諸如接收內(nèi)容、獲取或發(fā)起應(yīng)用、創(chuàng)建對等連接以使得能夠?qū)崿F(xiàn)多用戶模式或與另一個設(shè)備配對之類的特定動作。此外,接近服務(wù)可將用戶引導(dǎo)到授權(quán)的在線或離線應(yīng)用商店以獲取應(yīng)用,從而向用戶提供正在獲取的應(yīng)用是非惡意的保證措施。同樣的,向用戶提供視覺、觸覺和/或聽覺反饋以便讓用戶知道他們的設(shè)備已建立了接近連接。實施方式可使得用戶能夠禁止一些或全部接近服務(wù)功能,例如接近提供器本身、接近共享功能、接近配對功能、消息訂閱/發(fā)布功能、對等連接建立功能等。
此處使用的術(shù)語“接近”可具有一種或多種含義。在一些實施方式中,接近可表示例如通過利用設(shè)備做出的手勢而確定的兩個計算設(shè)備的物理靠近。在一個非限制例子中,當(dāng)執(zhí)行諸如設(shè)備的物理敲擊的物理手勢時認(rèn)為設(shè)備接近另一個設(shè)備。可通過NFC、TransferJetTM或一些其他短距離通信技術(shù)來建立這樣的接近連接。在可替換的實施方式中,可基于除物理手勢之外的環(huán)境信息來確立接近。一個非限制例子使用從公用無線接入點計算的距離來確定兩個設(shè)備是否處于諸如會議室之類的接近物理環(huán)境。在實施方式中,接近還可表示除設(shè)備的物理靠近之外的其他情況。在實施方式中,當(dāng)在兩個用戶之間存在某種關(guān)系時,用作第一用戶的用戶代理的設(shè)備接近用作另一個用戶的用戶代理的另一個設(shè)備。在一個非限制例子中,當(dāng)兩個用戶具有家庭關(guān)系時,第一用戶的設(shè)備接近第二用戶的設(shè)備。這些僅是示例,實施方式并不局限于以上所述內(nèi)容。
可通過多種方式實現(xiàn)此處所描述的過程、系統(tǒng)和設(shè)備。以下將參考下面的附圖提供示例實現(xiàn)方式。
用于接近服務(wù)的示例環(huán)境
圖1是為了應(yīng)用或其他操作系統(tǒng)元件而可用于使得接近動作能夠通過接近服務(wù)啟動的示例環(huán)境的示意圖。環(huán)境100可包括第一接近設(shè)備102和第二接近設(shè)備104??赏ㄟ^能夠?qū)崿F(xiàn)接近服務(wù)的多種合適的計算設(shè)備類型來實現(xiàn)第一接近設(shè)備102和第二接近設(shè)備104。合適的一個計算設(shè)備或多個計算設(shè)備可包括一個或多個個人計算機(jī)、服務(wù)器、服務(wù)器組、數(shù)據(jù)中心、特殊用途計算機(jī)、平板計算機(jī)、游戲操縱臺、智能電話以及這些的組合、或能夠存儲并執(zhí)行所有或部分接近服務(wù)的任何其他計算設(shè)備,或者是以上這些設(shè)備的一部分。
在圖1的示例性例子中,第一接近設(shè)備102包括接近服務(wù)106、支持接近的(proximity-enabled)應(yīng)用108和支持共享的(sharing-enabled)應(yīng)用110。支持接近的應(yīng)用108被配置為向接近服務(wù)106注冊多種接近功能。這樣的注冊可以是通過使用一個或多個應(yīng)用編程接口(API)。例如,支持接近的應(yīng)用108可被配置為調(diào)用尋找對等體API 112,其指示支持接近的應(yīng)用108搜索提供共享的用戶體驗的對等應(yīng)用。支持接近的應(yīng)用108可以是多用戶游戲、內(nèi)容交換應(yīng)用或一些其他協(xié)作應(yīng)用。
在另一個例子中,支持接近的應(yīng)用108可被配置為調(diào)用接近消息傳送API 114以注冊一個或多個要在其上發(fā)布應(yīng)用的命名空間和/或一個或多個要在其上進(jìn)行訂閱的命名空間。例如,支持接近的應(yīng)用108可以是訂閱Vcard命名空間的名片共享應(yīng)用,并且它還發(fā)布Vcard到相同的或不同的命名空間。
支持共享的應(yīng)用(例如支持共享的應(yīng)用110)被配置為在隊列中排列要共享的內(nèi)容并且調(diào)用共享服務(wù)116以共享隊列中的內(nèi)容。共享服務(wù)116被配置為呈現(xiàn)共享用戶界面元素118以允許用戶選擇要與之共享隊列中的內(nèi)容的應(yīng)用。共享用戶界面元素118還被配置為允許用戶與支持接近的設(shè)備共享內(nèi)容,作為與另一個應(yīng)用共享隊列中的內(nèi)容的替換。
接近提供器120是包括軟件元素和接近確定功能的功能模塊。接近提供器120可包括向接近服務(wù)106注冊為接近提供器的設(shè)備驅(qū)動器。接近提供器120可以是近場通信(NFC)提供器,TransferJetTM提供器或其他接近提供器類型。在使用接近無線電的實施方式中,接近提供器120被配置為通過接近基帶124建立與第二接近設(shè)備104的接近提供器122的接近連接。例如,當(dāng)接近提供器122的天線被接近地放置在接近提供器120的天線附近,則可以建立接近連接。例如,這會由于用戶將第一接近設(shè)備102靠近地放置在第二接近設(shè)備104附近而發(fā)生,反之亦然。可為設(shè)備加上標(biāo)注以顯示接近天線存在于何處,這樣的話用戶可容易地激活接近連接。存在不使用基于無線電的型號來確定接近的接近提供器的可替換實施方式。在一個這樣的例子中,在由接近提供器與全球定位系統(tǒng)(GPS)設(shè)備一起確定了兩個設(shè)備彼此緊密接近后,兩個設(shè)備可以彼此接近。在另一個例子中,在由接近提供器確定了兩個設(shè)備的用戶具有預(yù)先建立的關(guān)系(例如同事、同胞、親戚或一些其他人類關(guān)系)后,這兩個設(shè)備可以被認(rèn)為彼此接近。
接近服務(wù)106被配置為從接近提供器120接收已與第二接近設(shè)備104建立了接近連接的指示。接近服務(wù)106被配置為通過接近連接與第二接近設(shè)備104交換預(yù)先準(zhǔn)備的上下文信息。預(yù)先準(zhǔn)備的上下文信息的交換包括從第二接近設(shè)備104接收預(yù)先準(zhǔn)備的上下文信息和傳輸預(yù)先準(zhǔn)備的上下文信息126。預(yù)先準(zhǔn)備的上下文信息126包括由支持接近的應(yīng)用108和/或共享服務(wù)116注冊的任何接近功能。例如,預(yù)先準(zhǔn)備的上下文信息可包括支持接近的應(yīng)用108已注冊以便通過接近尋找對等體API 112尋找對等體的指示、支持接近的應(yīng)用108已注冊以便通過接近消息傳送API 114發(fā)布和/或訂閱命名空間中的消息的指示,或共享服務(wù)116已注冊了隊列中的內(nèi)容以便與接近設(shè)備共享的指示??商鎿Q地,預(yù)先準(zhǔn)備的上下文信息126可指示這些接近功能中多于一個的功能,或者不指示這些接近功能中的任何一個。接近服務(wù)106可僅傳輸部分預(yù)先準(zhǔn)備的上下文信息126,例如僅傳輸與當(dāng)前運(yùn)行在設(shè)備的用戶界面的前臺的應(yīng)用相關(guān)的預(yù)先準(zhǔn)備的上下文信息。
接近服務(wù)106通過將接收到的上下文信息與預(yù)先準(zhǔn)備的上下文信息126組合在一起來確定接近連接的聯(lián)合接近上下文。基于接近連接的聯(lián)合接近上下文,接近服務(wù)106被配置為啟動一個或多個接近動作以推進(jìn)由聯(lián)合接近上下文指示的接近功能。
例如,在聯(lián)合接近上下文包括支持接近的應(yīng)用108已注冊以便通過尋找對等體API 112尋找對等應(yīng)用的時候,接近服務(wù)106被配置為通過接近連接與第二接近設(shè)備104協(xié)商帶外連接類型,并且接著啟動連接。第一接近設(shè)備102和第二接近設(shè)備104被配置為通過接近連接傳輸它們各自的帶外連接能力給彼此。在一個實施方式中,接近服務(wù)106被配置為同時啟動到另一個設(shè)備的多個帶外連接,并且從成功連接的多個帶外連接中選擇一個以供使用。
在一個實施方式中,接近服務(wù)106和第二接近設(shè)備104上的接近服務(wù)(未示出)被配置為發(fā)現(xiàn)每個相應(yīng)接近設(shè)備上可用的帶外通信類型。如果協(xié)商之前建立了多于一種類型的帶外通信,那么接近服務(wù)106被配置為從中選擇一個。第二接近設(shè)備104上的接近服務(wù)(未示出)被配置為運(yùn)行與接近服務(wù)106相同的選擇算法,這樣的話在兩個設(shè)備上所選的帶外通信類型不會發(fā)生失配。在另一個非限制實施方式中,一個設(shè)備從能夠連接的那些帶外通信類型中選擇一種帶外通信類型并將選擇傳送給另一個設(shè)備。在實施方式中,接近服務(wù)106被配置為根據(jù)預(yù)先建立的性能目標(biāo),基于最快傳輸速度和最快連接來確定帶外連接。
接近服務(wù)106通過通信提供器128啟動帶外通信的建立。在多種實施方式中,通信提供器128可以是藍(lán)牙?、Wi-Fi?、直接Wi-FiTM或其他無線提供器類型。可替換的實施方式可以使用有線通信提供器來提供帶外通信。實施方式不限于任何一種類型或幾種類型的帶外通信提供器。通信提供器128是包括軟件元素和無線電硬件的功能元件。通信提供器128被配置為通過通信媒介132建立與第二接近設(shè)備104的通信提供器130的帶外連接。
一旦建立并選擇了帶外通信連接,接近服務(wù)106被配置為通過通信媒介132傳遞用于推進(jìn)信息交換的通信信息到支持接近的應(yīng)用108。在一個實施方式中,通信信息是聯(lián)網(wǎng)套接字類型接口。支持接近的應(yīng)用108被配置為交換關(guān)于套接字的信息以用于與第二接近設(shè)備104上的對等應(yīng)用的通信。
在聯(lián)合接近上下文包括支持接近的應(yīng)用108已經(jīng)注冊了要在一個或多個命名空間內(nèi)發(fā)布的消息,和/或已經(jīng)注冊了對相同或不同命名空間的訂閱的指示時,接近服務(wù)106被配置為通過接近連接從第二接近設(shè)備104接收命名空間信息,并且在確定了在一個設(shè)備上發(fā)布消息的命名空間和在另一個設(shè)備上的訂閱命名空間之間存在匹配后,通過接近連接在匹配的命名空間中傳輸和/或接收消息。
在聯(lián)合接近上下文包括共享服務(wù)116以注冊了隊列中的內(nèi)容以便與接近連接共享時,接近服務(wù)106被配置為通過以上所述的多種方式中的一種建立、協(xié)商和選擇帶外連接(例如通過通信提供器128和通信媒介132)。接近服務(wù)106還被配置為傳遞用于推進(jìn)通信媒介132上的信息交換的套接字或一些其他的通信信息到共享服務(wù)116,以用于共享服務(wù)116發(fā)送隊列中的內(nèi)容。
可能的是不僅第一接近設(shè)備102的預(yù)先準(zhǔn)備的上下文信息126包括注冊的接近功能的指示,并且來自第二接近設(shè)備104的預(yù)先準(zhǔn)備的上下文信息也包括注冊的接近功能的指示。例如,聯(lián)合接近上下文可包括第二接近設(shè)備104的應(yīng)用請求到支持接近的應(yīng)用108的對等連接的指示。在這種情況下,接近服務(wù)106可引發(fā)在第一接近設(shè)備102的顯示器上顯示接近對等體用戶界面元素134。接近對等體用戶界面元素134包括同意對等請求的可選擇選項,根據(jù)第一接近設(shè)備102的狀態(tài)而包括多種動作。
例如,在建立接近連接的時候不可在當(dāng)時執(zhí)行支持接近的應(yīng)用108。在這種情況下,接近對等體用戶界面元素134被配置為呈現(xiàn)同意除了建立對等連接之外,同意發(fā)起、運(yùn)行或執(zhí)行支持接近的應(yīng)用108的可選擇選項。在另一個例子中,當(dāng)前可執(zhí)行支持接近的應(yīng)用108,但是其不可在用戶界面的前臺運(yùn)行。在該例子中,接近對等體用戶界面元素134被配置為呈現(xiàn)同意將支持接近的應(yīng)用108帶到前臺的可選擇選項。在另一個例子中,可在用戶界面的前臺執(zhí)行支持接近的應(yīng)用108,但是可能沒有注冊以便通過接近尋找對等體API 112來尋找對等應(yīng)用。在該例子中,接近對等體用戶界面元素134被配置為呈現(xiàn)同意對等請求的可選擇選項。在從用戶設(shè)備接收到指示已經(jīng)選擇了多種可選擇同意選項中的一個的輸入后,接近服務(wù)106通過以上所描述的相似的方式協(xié)商并啟動帶外連接的建立,并且傳遞套接字或一些其他通信信息到支持接近的應(yīng)用108以推進(jìn)通過通信媒介132的信息交換。
可能沒有在第一接近設(shè)備102上安裝支持接近的應(yīng)用108。在這種情況下,接近對等體用戶界面134被配置為呈現(xiàn)發(fā)起應(yīng)用獲取服務(wù)136,從而獲得支持接近的應(yīng)用108的可選擇選項。應(yīng)用獲取服務(wù)136可提供界面以與在線或離線應(yīng)用商店交互,從而使得用戶能夠購買或用其他辦法獲得支持接近的應(yīng)用108。
聯(lián)合接近上下文可包括第二接近設(shè)備104的共享服務(wù)請求發(fā)送內(nèi)容到第一接近設(shè)備102的指示。在這種情況下,接近服務(wù)106被配置為引發(fā)顯示接近共享用戶界面元素138。接近共享用戶界面元素138被配置為顯示關(guān)于隊列中內(nèi)容的信息,和同意接收隊列中內(nèi)容的可選擇選項。在接收到來自用戶輸入設(shè)備的指示用戶同意接收隊列中內(nèi)容的輸入后,接近服務(wù)106被配置為協(xié)商并啟動到第二接近設(shè)備104的帶外連接的建立。接近服務(wù)106被配置為傳遞推進(jìn)通信媒介132上的信息交換的套接字或一些其他通信信息到共享服務(wù)116以推進(jìn)隊列中內(nèi)容的接收。接近共享用戶界面元素138還被配置為呈現(xiàn)打開應(yīng)用來瀏覽接收到的內(nèi)容的可選擇選型。
接近服務(wù)126可推斷請求的接近功能。在一個例子中,聯(lián)合接近上下文可包括從被指示為具有接近焦點(proximity focus)的應(yīng)用(或多個應(yīng)用)的當(dāng)前狀態(tài)推斷得到的接近功能的指示,例如確定為在設(shè)備的用戶界面的前臺運(yùn)行的應(yīng)用。在一個非限制例子中,在建立接近連接之前,用戶選擇前臺應(yīng)用的內(nèi)容。但是前臺應(yīng)用沒有調(diào)用共享服務(wù)或選擇與接近設(shè)備共享內(nèi)容。在建立接近連接后,接近服務(wù)106改為推斷用戶希望與接近設(shè)備共享內(nèi)容。因此,接近服務(wù)106確定預(yù)先準(zhǔn)備的上下文信息126包括共享內(nèi)容的請求。因此接近服務(wù)106引發(fā)顯示接近共享用戶界面元素138,提供與接近設(shè)備共享所選擇的內(nèi)容的可選擇選項。如果接收到指示用戶同意的輸入,發(fā)起共享服務(wù)116,接近服務(wù)106通過具體實施方式部分中在別處所描述的多種方法中的一種建立、協(xié)商和選擇帶外通信信道以傳輸內(nèi)容。
在推斷的接近功能請求的另一個例子中,前臺應(yīng)用可包括多用戶功能,但是前臺應(yīng)用還沒有向接近服務(wù)126注冊以尋找接近設(shè)備中的對等應(yīng)用。接近服務(wù)126改為從應(yīng)用的狀態(tài)(例如,前臺應(yīng)用被放置到多用戶模式)推斷尋找對等應(yīng)用的請求。接近服務(wù)126引發(fā)顯示接近對等體用戶界面134和同意與第二接近設(shè)備104建立對等連接的可選擇選項。一旦得到同意,接近服務(wù)126通過具體實施方式中在別處所描述的方式執(zhí)行動作以建立對等連接。
在另一個例子中,聯(lián)合接近上下文可包括第二接近設(shè)備104請求與第一接近設(shè)備102配對的指示。在這種情況下,第二接近設(shè)備104可以是諸如鼠標(biāo)、鍵盤、視頻投影儀或其它設(shè)備之類的無源接近設(shè)備。在這樣的情況下,接近提供器122可以是在被放置到接近提供器120的天線附近時而被供電的無源標(biāo)記或標(biāo)簽??商鎿Q地,第二接近設(shè)備104可以是諸如照相機(jī)、智能電話或其他設(shè)備之類的有源接近設(shè)備??商鎿Q的實施方式使用不同的方法來確定接近和提供標(biāo)簽信息。例如,服務(wù)可確定接近代表在物理會議室內(nèi)的所有設(shè)備,并且直接在接近提供器層引入標(biāo)簽的概念。在任一事件中,在通過接近連接接收到配對請求后,接近服務(wù)106被配置為引發(fā)顯示接近配對用戶界面元素140,其包括同意配對請求的可選擇選項。由第二接近設(shè)備104發(fā)送的配對請求可包括諸如設(shè)備類型、型號、制造商等的設(shè)備信息。因此,接近配對用戶界面元素140還被配置為顯示這些信息和同意配對請求的可選擇選項。
接近服務(wù)106通過以上所描述的相同的或相似的方式協(xié)商并啟動到第二接近設(shè)備104的帶外通信連接的建立。接近服務(wù)106被配置為傳遞帶外配對信息到配對服務(wù)142,以便配對服務(wù)142直接與第二接近設(shè)備104進(jìn)行通信從而完成配對操作,同時使得能夠進(jìn)行諸如配對的設(shè)備的內(nèi)容傳輸或遠(yuǎn)程操作、與配對設(shè)備相關(guān)的附加軟件的安裝等配對動作。
最后,在接近連接建立后,用戶反饋模塊144被配置為引發(fā)顯示一個或多個用戶界面元素、播放音頻聲音和設(shè)備振動,從而警告用戶接近事件和/或接近連接的成功建立。
在這些例子中,兩個接近設(shè)備中的一個的用戶已經(jīng)預(yù)先準(zhǔn)備了一些接近功能(在無源配對設(shè)備的情況下,在無源配對設(shè)備的制造期間或接近提供器122的制造期間,或者可替換地通過由接近提供器確定的一些方法預(yù)先準(zhǔn)備了接近動作)。在將設(shè)備物理地放置到一起后(例如通過同時搖動、敲擊、彼此充分接觸的放置、進(jìn)入共同的物理空間或通過一些其他手勢)或者在將設(shè)備放置到諸如互聯(lián)網(wǎng)聊天室之類的虛擬空間中后,接近服務(wù)106啟動預(yù)先準(zhǔn)備的接近動作以推進(jìn)預(yù)先準(zhǔn)備的接近功能,從而從設(shè)備被移動到靠近另一個設(shè)備的事實推斷出用戶試圖激活預(yù)先準(zhǔn)備的功能。用戶反饋模塊144以及多種同意用戶界面增強(qiáng)了啟動接近功能的用戶體驗,并且為用戶提供附加級別的安全和隱私保護(hù)。平臺層面的接近服務(wù)106允許應(yīng)用交付這些用戶體驗而無需直接與接近提供器120交互。因此,諸如支持接近的應(yīng)用108和支持共享的應(yīng)用110之類的應(yīng)用可以不知道底層接近技術(shù)。
示例接近設(shè)備
圖2是根據(jù)實施方式的可用于提供接近服務(wù)的示例設(shè)備的方框圖。接近設(shè)備200可被配置為任何能夠?qū)崿F(xiàn)接近服務(wù)的合適的計算設(shè)備。根據(jù)多種非限制例子,合適的計算設(shè)備可以包括個人計算機(jī)(PC)、服務(wù)器、服務(wù)器組、數(shù)據(jù)中心、特殊用途計算機(jī)、平板計算機(jī)、游戲操縱臺、智能電話、這些的組合或任何其他能夠存儲并執(zhí)行全部或部分接近服務(wù)的(多個)計算設(shè)備。
在一種示例配置中,接近設(shè)備200包括一個或多個處理器202和存儲器204。接近設(shè)備200還可包括允許與多種設(shè)備進(jìn)行通信的(多個)通信連接206。接近設(shè)備200還可包括可通信地耦合到(多個)處理器202和存儲器204上的諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等一個或多個輸入設(shè)備208,和諸如顯示器、揚(yáng)聲器、打印機(jī)等一個或多個輸出設(shè)備210。
存儲器204可存儲(多個)處理器202可加載和可執(zhí)行的程序指令和在執(zhí)行這些程序期間生成的和/或可與這些程序一起使用的數(shù)據(jù)。在所示的例子中,存儲器204存儲提供接近設(shè)備200的基本系統(tǒng)功能的操作系統(tǒng)212,并且除其它操作外,操作系統(tǒng)212還提供接近設(shè)備200的其他程序和模塊的操作。
存儲器204還包括可以與圖1的接近服務(wù)106相同或相似的接近服務(wù)214。存儲器204包括接近提供器模塊216,其與接近硬件218一起形成了可以與圖1的接近提供器120相同或相似的接近提供器。在其他實施方式中,接近提供器模塊216包括合并多種硬件組件的功能以確定與另一個設(shè)備的接近信息的軟件。在這樣的實施方式中,接近硬件218可包括一個或多個全球定位系統(tǒng)硬件、音頻傳感器、視頻照相機(jī)、其他傳感器類型、無線電硬件、加速計硬件等。在其他實施方式中,接近提供器可以是純軟件接近提供器,在這樣的實施方式中,接近提供器模塊216不與接近硬件218相交互。由接近提供器模塊216合并的硬件組件可包括一個或多個由通信連接206代表的聯(lián)網(wǎng)組件。
存儲器204包括分別與圖1的支持接近的應(yīng)用108和支持共享的應(yīng)用110相同或相似的(多個)支持接近的應(yīng)用220和(多個)支持共享的應(yīng)用222。
存儲器204包括可以與圖1的配對服務(wù)142相同或相似的配對服務(wù)224。存儲器204還包括可以與圖1的共享服務(wù)116相同或相似的共享服務(wù)226。存儲器204包括可以與圖1的應(yīng)用獲取服務(wù)136相同或相似的應(yīng)用獲取服務(wù)228。接近設(shè)備200可包括諸如藍(lán)牙?、Wi-Fi?、直接Wi-FiTM或其他無線無線電類型之類的無線無線電230。
用于使得能夠?qū)崿F(xiàn)預(yù)先準(zhǔn)備的接近動作的示例性操作
圖3是顯示用于響應(yīng)于接近連接的建立而使得預(yù)先準(zhǔn)備的接近功能能夠為了應(yīng)用和各種操作系統(tǒng)元素而被激活的示例過程300的流程圖。響應(yīng)于兩個設(shè)備被彼此靠近地放置,方框302在兩個設(shè)備之間建立接近連接。可通過彼此靠近地?fù)u晃設(shè)備、一起敲擊設(shè)備、彼此充分地接觸放置、進(jìn)入共用的物理位置、放置到諸如互聯(lián)網(wǎng)聊天室之類的共用虛擬空間或通過用戶的一些其他手勢而將設(shè)備放置到彼此接近狀態(tài)。
在方框304,接近設(shè)備的接近服務(wù)從接近提供器接收已建立了接近連接的指示。接近提供器可被配置為傳遞消息到接近服務(wù)以提供連接建立指示。
在方框306,設(shè)備的接近服務(wù)通過接近連接發(fā)送預(yù)先準(zhǔn)備的接近上下文信息到另一個設(shè)備。預(yù)先準(zhǔn)備的接近上下文信息可包括已請求的和/或已向接近服務(wù)注冊的接近功能。預(yù)先準(zhǔn)備的接近上下文的非限制例子包括設(shè)備的應(yīng)用已注冊以在另一臺設(shè)備上尋找對等應(yīng)用的指示,設(shè)備的應(yīng)用已發(fā)布消息到一個或多個命名空間和/或訂閱了相同或不同的命名空間的指示,希望創(chuàng)建配對關(guān)系的指示,和設(shè)備的共享服務(wù)已在隊列中排列了要發(fā)送給接近設(shè)備的內(nèi)容的知識。
在方框308,接近服務(wù)可引發(fā)用戶反饋被提供給用戶以指示已建立了接近連接。用戶反饋可包括用戶界面顯示或“toast”(無焦點小窗口),音頻片段或聲音的播放、設(shè)備振動或一些其他用戶反饋。反饋警告用戶已建立了接近連接??墒褂每商鎿Q的反饋機(jī)制而不脫離實施方式的范圍。
在方框310,接近服務(wù)通過接近連接從另一個設(shè)備接收預(yù)先準(zhǔn)備的接近上下文信息。接收到的預(yù)先準(zhǔn)備的接近上下文信息可包括另一個設(shè)備的應(yīng)用已注冊以尋找接近設(shè)備上的對等應(yīng)用的指示,另一個設(shè)備的應(yīng)用已發(fā)布消息到一個或多個命名空間和/或訂閱了相同的或不同的命名空間的指示,另一個設(shè)備的共享服務(wù)已在隊列中排列了要發(fā)送到接近設(shè)備的內(nèi)容的指示,和另一個設(shè)備請求形成與該設(shè)備的配對連接的指示。
在方框312確定接近連接的聯(lián)合接近上下文。聯(lián)合接近上下文不僅包括發(fā)送的和接收的預(yù)先準(zhǔn)備的接近上下文信息,還包括諸如請求的對等應(yīng)用是否正在設(shè)備上運(yùn)行和/或已安裝、兩個設(shè)備的通信能力之類的設(shè)備狀態(tài)信息,諸如應(yīng)用是否在用戶界面的前臺運(yùn)行的應(yīng)用狀態(tài)等。
在方框314,基于確定的接近連接的聯(lián)合接近上下文,接近服務(wù)啟動一個或多個接近動作以推進(jìn)預(yù)先準(zhǔn)備的接近功能。這樣的預(yù)先準(zhǔn)備的接近動作可包括建立通過通信提供器到另一個設(shè)備的帶外連接,引發(fā)顯示用戶界面以同意多種動作,發(fā)起應(yīng)用,將應(yīng)用帶到用戶界面的前臺,傳輸隊列中用于共享的內(nèi)容,從另一個設(shè)備接收內(nèi)容,建立設(shè)備的應(yīng)用和在另一個設(shè)備上運(yùn)行的另一個應(yīng)用之間的對等連接,發(fā)起應(yīng)用獲取服務(wù)以獲得對等應(yīng)用等等。將在具體實施方式部分中的其他地方更詳細(xì)的描述這些和其他預(yù)先準(zhǔn)備的接近動作。
用于使得能夠?qū)崿F(xiàn)預(yù)先準(zhǔn)備的對等連接的示例性操作
圖4是顯示用于使用接近連接啟動并建立預(yù)先準(zhǔn)備的對等連接的示例過程400的流程圖。在方框402,支持接近的應(yīng)用注冊以在接近設(shè)備上尋找對等應(yīng)用。在方框404,一旦建立了與另一個設(shè)備的接近連接,在方框406接近服務(wù)發(fā)送預(yù)先準(zhǔn)備的上下文信息到另一個設(shè)備。預(yù)先準(zhǔn)備的上下文信息包括指示:支持接近的應(yīng)用已注冊以定位對等體,從而建立與對等應(yīng)用的對等連接。
在方框408,確定接近連接的聯(lián)合接近上下文。在圖4所描述的實施方式中,聯(lián)合接近上下文包括支持接近的應(yīng)用已注冊以定位對等體的指示。在實施方式中,在方框410,接近服務(wù)將通過接近提供器交換接近連接的共享密鑰,共享密鑰可用來保護(hù)帶外通信信道的安全。
在方框412,設(shè)備的接近服務(wù)啟動到另一個設(shè)備的一個或多個帶外通信信道的建立。有可能另一個設(shè)備將不同意建立帶外通信信道,例如在另一個設(shè)備的用戶拒絕同意對等連接時,或者在另一個設(shè)備沒有安裝對等應(yīng)用時。在這樣的情況下,將不建立帶外通信信道。
在方框414,設(shè)備的接近服務(wù)協(xié)商帶外信道類型。在方框412可能成功建立了多于一個的帶外通信信道。如果是這樣的話,在一個或兩個設(shè)備上運(yùn)行選擇算法來選擇其中一個帶外通信信道以用于推進(jìn)對等連接。在實施方式中,選擇算法基于最快速度和最快連接時間來選擇帶外連接類型。在一個非限制例子中,兩個設(shè)備都支持藍(lán)牙TM、WiFi和直接WiFi。啟動設(shè)備使用以上所有三個來啟動通信連接的建立。在一個實例中,藍(lán)牙TM將非常快速的連接,并且因為其提供了足夠的帶寬,在啟動中途(mid-initiation)啟動設(shè)備選擇它并且放棄其他連接。
在可替換的實施方式中,接近服務(wù)可以在建立帶外通信之前協(xié)商帶外通信類型。在這樣的實施方式中,接近服務(wù)傳輸關(guān)于設(shè)備的通信能力的數(shù)據(jù),并且接近服務(wù)接收關(guān)于另一個設(shè)備的通信能力的數(shù)據(jù)。接近服務(wù)搜索匹配的通信能力,并且選擇匹配這兩個設(shè)備能力的通信類型。如果有超過一種通信類型匹配,接近服務(wù)使用預(yù)定的過程選擇眾多能力中的一個。另一個設(shè)備可使用相同的過程來確保在所選擇的通信類型之間沒有失配;可替換地,一個設(shè)備選擇通信類型,并且向另一個設(shè)備通知選擇了哪種通信類型。
在方框416,接近服務(wù)傳遞推進(jìn)通過通信接口的信息交換的通信套接字或一些其他通信信息到支持接近的應(yīng)用。通信套接字(或其他通信信息)允許支持接近的應(yīng)用通過帶外信道與對等應(yīng)用之間傳輸和接收數(shù)據(jù)。
圖5是顯示用于在從接近設(shè)備接收到對等連接邀請后啟動預(yù)先準(zhǔn)備的對等連接的示例過程500的流程圖。在方框502,設(shè)備的接近服務(wù)接收與接近設(shè)備建立接近連接的指示。如同在具體實施方式部分中在別處所述的那樣,在方框504,在設(shè)備之間交換預(yù)先準(zhǔn)備的上下文信息,并建立接近連接的聯(lián)合上下文。在圖5所示的實施方式中,聯(lián)合上下文包括另一個設(shè)備的應(yīng)用已注冊以形成到接近設(shè)備的對等應(yīng)用的對等連接的指示。
在方框506,接近服務(wù)確定是否在設(shè)備上安裝了相應(yīng)于對等連接的對等應(yīng)用。一旦確定沒有安裝對等應(yīng)用,在方框508,接近服務(wù)引發(fā)顯示提供同意應(yīng)用獲取的可選擇選項的應(yīng)用獲取用戶界面元素。通過簡單化(streamline)應(yīng)用獲取的過程,向用戶提供同意選項增強(qiáng)了用戶體驗,這還有助于防止在用戶的設(shè)備上下載或安裝未授權(quán)的應(yīng)用。
在方框510,一旦接收到同意獲取應(yīng)用,設(shè)備發(fā)起應(yīng)用獲取服務(wù)。應(yīng)用獲取服務(wù)可已提供在線或離線應(yīng)用商店的界面以便用戶購買或用別的方法獲得對等應(yīng)用。一旦在設(shè)備上安裝了對等應(yīng)用,該過程可以再次開始新的接近連接的建立。在可替換的實施方式中,如以下所述,接近服務(wù)采取步驟以啟動與新獲取的應(yīng)用的對等連接。
在方框514,一旦確定了已安裝對等應(yīng)用,接近服務(wù)通過接近提供器交換接近連接的共享密鑰,共享密鑰可用來保護(hù)帶外通信信道的安全。
在方框516,接近服務(wù)啟動與另一個設(shè)備的一個或多個帶外通信信道的建立。通信提供器(諸如藍(lán)牙?、WiFi?、直接WiFiTM或其他通信提供器類型)可被用來建立用于對等連接的通信信道。
在方框518,接近服務(wù)協(xié)商帶外通信信道類型。帶外通信信道類型可以是藍(lán)牙?、WiFi?、直接WiFiTM或其他通信提供器類型。接近服務(wù)選擇兩個設(shè)備都可用的一種帶外通信信道類型,如果超過一種的帶外通信信道類型對于兩個設(shè)備都可用,則根據(jù)預(yù)定的方法選擇一種。
例如,可以在方框516建立超過一種的帶外通信信道。在那種情況下,一個或兩個設(shè)備采用選擇算法以選擇多種帶外通信信道中的一種以供使用。在可替換的實施方式中,在建立任何帶外通信信道之前協(xié)商帶外通信信道類型。在實施方式中,選擇算法基于最快速度和最快連接時間而選擇一種帶外連接類型。在一個非限制例子中,兩個設(shè)備都支持藍(lán)牙TM、WiFi和直接WiFi,兩個設(shè)備中的一個使用所有這三種啟動通信連接的建立。在一個實例中,藍(lán)牙TM可以非??焖俚剡B接,并且因為他提供了足夠的帶寬,啟動設(shè)備在啟動中途選擇它并忽略其他連接。在其他實例中,可以選擇一些其他連接類型。
在方框520,接近服務(wù)確定對等應(yīng)用是否在設(shè)備上執(zhí)行。在方框522,一旦確定應(yīng)用沒有運(yùn)行,接近服務(wù)引發(fā)顯示提供同意執(zhí)行應(yīng)用和建立對等連接的可選擇選項的用戶界面元素。
在方框524,一旦確定對等應(yīng)用正在運(yùn)行,接近服務(wù)確定應(yīng)用是否具有接近焦點(proximity focus),(在一個例子中被確定為是在用戶界面的前臺上運(yùn)行的應(yīng)用)。在方框526,如果應(yīng)用不具有接近焦點,接近服務(wù)引發(fā)顯示提供同意向應(yīng)用提供接近焦點以及同意對等連接的可選擇選項的用戶界面元素??商鎿Q的實施方式被配置為使用不同的形式來向用戶指示特定的應(yīng)用需要關(guān)注以處理接近通信??商鎿Q的實施方式可使用用戶界面焦點之外的一些方式來確定哪個應(yīng)用具有接近焦點。
在方框528,一旦確定對等應(yīng)用具有接近焦點,接近服務(wù)確定對等應(yīng)用之前是否已注冊來尋找接近設(shè)備上的對等應(yīng)用。在如圖5所示的實施方式中,在另一個設(shè)備上的應(yīng)用已注冊來尋找對等體。方框528實質(zhì)上確定在兩個設(shè)備上的對等應(yīng)用是否已注冊以在接近設(shè)備上尋找對等應(yīng)用。
在方框530,一旦確定在前臺運(yùn)行的對等應(yīng)用尚未注冊來尋找對等應(yīng)用,接近服務(wù)引發(fā)顯示向用戶提供同意對等請求的可選擇選項的用戶界面元素。向用戶提供同意選項允許用戶維持對他們的設(shè)備的控制,從而增強(qiáng)安全和用戶隱私。
在方框532,一旦從用戶輸入設(shè)備接收到指示用戶同意形成對等連接的輸入,(或者應(yīng)用先前已注冊以尋找對等),在方框534,接近服務(wù)向?qū)Φ葢?yīng)用返回通信套接字或一些其他通信信息以推進(jìn)通過通信媒介的信息交換,從而使得對等應(yīng)用能夠它與另一個設(shè)備上的對等體進(jìn)行通信。
過程500使得用戶能夠使他或她的設(shè)備進(jìn)入與另一個設(shè)備接近的狀態(tài)以建立接近連接,能夠同意形成與另一個設(shè)備的對等連接,以及能夠與另一個設(shè)備直接參與多用戶協(xié)作。平臺層面的接近服務(wù)允許應(yīng)用向用戶提供這種體驗,而無需直接編程到接近提供器,并且無需在建立接近連接時運(yùn)行應(yīng)用。
用于使得能夠?qū)崿F(xiàn)預(yù)先準(zhǔn)備的消息傳輸?shù)氖纠圆僮?/p>
圖6是顯示用于啟動通過接近連接的預(yù)先準(zhǔn)備的消息傳輸?shù)氖纠^程600的流程圖。在方框602,支持接近的應(yīng)用可以發(fā)布消息到一個或多個命名空間。命名空間可以是基于標(biāo)準(zhǔn)的命名空間,或者命名空間可以是專有的和/或任意命名空間。支持接近的應(yīng)用可通過調(diào)用接近消息傳送API來注冊將要發(fā)布的消息。
在方框604,相同的或不同的支持接近的應(yīng)用還可訂閱一個或多個命名空間。支持接近的應(yīng)用可訂閱與支持接近的應(yīng)用向其發(fā)布的命名空間相同或不同的命名空間。支持接近的應(yīng)用可通過調(diào)用接近消息傳送API來注冊命名空間訂閱。
在方框606,一旦確定建立了與另一個設(shè)備的接近連接,在方框608,接近服務(wù)與另一個設(shè)備交換命名空間信息。接近服務(wù)發(fā)送支持接近的應(yīng)用訂閱的和/或發(fā)布的命名空間,并且接收另一個設(shè)備訂閱和/或發(fā)布的命名空間。接近服務(wù)發(fā)送支持接近的應(yīng)用已經(jīng)在其上發(fā)布消息的命名空間,并且接收另一個設(shè)備已經(jīng)在其上發(fā)布的命名空間。
在方框610,聯(lián)合接近上下文被確定為包括有消息要發(fā)布和/或有消息要從另一個設(shè)備接收的指示。例如,接近服務(wù)確定在設(shè)備向其發(fā)布的命名空間和由另一個設(shè)備訂閱的命名空間之間存在匹配,或者在由設(shè)備訂閱的命名空間和另一個設(shè)備向其發(fā)布的命名空間之間存在匹配。
在方框612,接近服務(wù)通過接近連接接收在匹配的訂閱命名空間上的消息。一旦接收到,在方框614,接近服務(wù)就提供接收到的消息到向該命名空間注冊了訂閱的支持接近的應(yīng)用。在還沒有運(yùn)行支持接近的應(yīng)用的情況下接近服務(wù)可以引發(fā)發(fā)起支持接近的應(yīng)用。在方框616,接近服務(wù)通過接近連接傳輸在匹配的命名空間上發(fā)布的消息到另一個設(shè)備。在可替換的實施方式中,無需首先確定匹配命名空間即交換消息。
在一個非限制例子中,支持接近的應(yīng)用可以是被配置為訂閱名片命名空間的名片應(yīng)用。名片應(yīng)用還可被配置為在相同的命名空間中發(fā)布Vcard。例如,當(dāng)例如通過一起敲擊兩個設(shè)備而建立與另一個設(shè)備的接近連接時,名片應(yīng)用接收到由另一個設(shè)備發(fā)布的Vcard,并且由名片應(yīng)用發(fā)布的Vcard被傳輸?shù)搅硪粋€設(shè)備。因此,用戶可以僅僅通過一起觸碰他們的設(shè)備而交換聯(lián)系信息。此外,基于平臺的接近服務(wù)使得應(yīng)用開發(fā)者能夠交付該用戶體驗,而無需直接編程到設(shè)備的獨一無二的接近技術(shù)。
在實施方式中,接近服務(wù)可被配置為用于特定命名空間的接收者。在這樣的實施方式中,接近服務(wù)可利用在接近服務(wù)的操作環(huán)境內(nèi)可用的其它服務(wù),以便識別支持包含在通過接近服務(wù)交換的接近命名空間消息內(nèi)的數(shù)據(jù)的應(yīng)用。在一個實施方式中,接近服務(wù)引發(fā)數(shù)據(jù)留存到計算機(jī)可讀存儲媒介中,并且接著使用現(xiàn)有的平臺服務(wù)來引發(fā)激活與留存的數(shù)據(jù)相關(guān)聯(lián)的應(yīng)用,以用于向用戶呈現(xiàn)數(shù)據(jù)的目的或用于其他目的。接近服務(wù)可直接或間接地引發(fā)呈現(xiàn)允許用戶同意應(yīng)用的激活的用戶界面。這可以維持整個體驗的安全。在一個非限制例子中,接近服務(wù)被配置為辨識包含Vcard數(shù)據(jù)的接近命名空間。接近服務(wù)使得Vcard數(shù)據(jù)被留存到計算機(jī)可讀存儲媒體中,并且接著利用現(xiàn)有的系統(tǒng)工具來確定將發(fā)起的應(yīng)用以呈現(xiàn)或以其他方式處理留存的Vcard數(shù)據(jù)。
在另一個非限制例子中,支持接近的應(yīng)用知道底層接近技術(shù),并且能夠使用抽象的API直接與接近技術(shù)通信。在一個非限制例子中,支持接近的應(yīng)用構(gòu)建NFC數(shù)據(jù)交換格式(NDEF)有效載荷,并且將他們直接發(fā)布到NFC接近提供器。
用于使得能夠?qū)崿F(xiàn)預(yù)先準(zhǔn)備的設(shè)備配對的示例性操作
圖7是顯示用于啟動預(yù)先準(zhǔn)備的設(shè)備配對功能的示例過程700的流程圖。在方框702,接近服務(wù)接收已與另一個設(shè)備建立了接近連接的指示。在方框704,接近服務(wù)確定接近連接的聯(lián)合接近上下文包括另一個設(shè)備請求建立配對連接的指示。另一個設(shè)備可以是無源接近設(shè)備(諸如鼠標(biāo)、鍵盤、揚(yáng)聲器、視頻投影儀或其他無源設(shè)備)??商鎿Q地,另一個設(shè)備可以是有源接近設(shè)備(諸如照相機(jī)、智能電話、個人音樂播放器或其他)。在諸如那些采用設(shè)備至應(yīng)用配對的實施方式之類的實施方式中,在方框706,接近服務(wù)啟動用于與配對設(shè)備進(jìn)行通信的一個或多個持續(xù)帶外通信信道的建立。所選的通信提供器(諸如藍(lán)牙?、Wi-Fi?、直接Wi-FiTM或其他提供器類型)建立與配對設(shè)備的連接。
在方框708,接近服務(wù)協(xié)商用來配對兩個設(shè)備的帶外通信信道類型。帶外通信信道類型可以是藍(lán)牙?、Wi-Fi?、直接Wi-FiTM或其他通信提供器類型。接近服務(wù)選擇兩個設(shè)備都可用的帶外通信信道類型,如果有超過一種帶外通信信道類型在兩個設(shè)備上都可用的話,根據(jù)預(yù)定方式選擇一種。
例如,在方框706可建立超過一種的帶外通信信道。在那種情況下,一個或兩個設(shè)備采用選擇算法以選擇其中的一種以供使用。在可替換的實施方式中,在建立任何帶外通信信道之前協(xié)商帶外通信信道類型。在實施方式中,選擇算法基于最快速度和最快連接時間而選擇一種帶外連接類型。在一個非限制例子中,兩個設(shè)備都支持藍(lán)牙TM、WiFi和直接WiFi,兩個設(shè)備中的一個使用以上所有三種啟動通信連接的建立。在一個實例中,藍(lán)牙TM將非??焖俚剡B接,并且因為其提供了足夠的帶寬,在啟動中途(mid-initiation)啟動設(shè)備選擇它并且放棄其他連接。在其他實例中,可選擇一些其他的連接類型。
在可替換的實施方式中,諸如那些利用設(shè)備至操作系統(tǒng)配對(而不是設(shè)備至應(yīng)用配對)的實施方式,可省略由方框706和708所描述的過程。在那些實例中,操作系統(tǒng)的配對服務(wù)可在隨后時間啟動和/或協(xié)商帶外通信信道以代替由接近服務(wù)啟動這樣的信道。這樣的配對服務(wù)功能超出了本具體實施方式部分的范圍。
在方框710,接近服務(wù)引發(fā)顯示提供同意配對請求的可選擇選項的用戶界面元素。用戶界面元素可包括關(guān)于另一個設(shè)備的信息(諸如設(shè)備類型、制造商、型號等)。這些信息可包括在通過接近連接接收到的配對請求中或與之一起被包括。
在方框712,一旦從用戶設(shè)備接收到指示用戶同意配對請求的輸入,在方框714,接近服務(wù)傳遞帶外配對信息到設(shè)備的配對服務(wù)或設(shè)備的應(yīng)用,以便完成配對過程,并提供諸如配對設(shè)備的內(nèi)容傳輸和遠(yuǎn)程控制的配對體驗。在實施方式中,諸如那些利用設(shè)備至應(yīng)用配對的實施方式,推進(jìn)通過通信媒介的信息交換的通信套接字或一切其他通信信息被傳遞到配對應(yīng)用以與對等設(shè)備建立帶外通信連接。
實施方式允許用戶僅僅通過用設(shè)備敲擊個人計算機(jī)而將設(shè)備與他或她的個人計算機(jī)配對。例如,用戶可用鼠標(biāo)敲擊個人計算機(jī),并自動地啟動之前所描述的配對動作。一旦用戶同意與鼠標(biāo)配對,鼠標(biāo)和個人計算機(jī)可使用例如藍(lán)牙?連接進(jìn)行通信,并且允許鼠標(biāo)控制個人計算機(jī)的用戶界面內(nèi)的指針。
用于使得能夠?qū)崿F(xiàn)預(yù)先準(zhǔn)備的內(nèi)容共享的示例性操作
圖8是顯示用于啟動并建立帶外連接以使得能夠與接近設(shè)備共享預(yù)先準(zhǔn)備的內(nèi)容的示例過程800的流程圖。在方框802,支持共享的應(yīng)用調(diào)用共享服務(wù)。共享服務(wù)是允許應(yīng)用與另一個共享內(nèi)容的操作系統(tǒng)元素。共享服務(wù)可呈現(xiàn)用戶可從中選擇其他應(yīng)用以與其共享數(shù)據(jù)的用戶界面元素。共享服務(wù)還可向用戶呈現(xiàn)與接近設(shè)備共享數(shù)據(jù)的選項??商鎿Q的實施方式可以不必用戶呈現(xiàn)同意選項。
在方框804,共享服務(wù)接收與接近設(shè)備共享內(nèi)容的請求。在方框806,共享服務(wù)向接近服務(wù)注冊以請求發(fā)送內(nèi)容到接近設(shè)備。
在方框808,接近服務(wù)從接近提供器接收已建立接近連接的指示。在方框810,接近服務(wù)將與另一個設(shè)備交換包括已注冊隊列中的內(nèi)容以用于與接近設(shè)備共享的指示的預(yù)先準(zhǔn)備的接近上下文信息。
在方框812,接近服務(wù)確定聯(lián)合接近上下文。在如圖8所示的實施方式中,聯(lián)合接近上下文包括共享服務(wù)已在隊列中排列了內(nèi)容以發(fā)送到接近設(shè)備的指示。在方框814,接近服務(wù)通過接近提供器交換可用來保護(hù)帶外通信信道安全的接近連接的共享密鑰。
在方框816,接近服務(wù)啟動帶外通信信道的建立以用于與接近設(shè)備通信。所選擇的通信提供器(諸如藍(lán)牙?、Wi-Fi?、直接Wi-FiTM或其他通信提供器類型)建立與共享設(shè)備的連接。
在方框818,接近服務(wù)協(xié)商帶外通信信道類型。如具體實施方式部分中在別處所描述的那樣,協(xié)商可包括交換關(guān)于兩個設(shè)備的通信能力的信息以及選擇一種通信類型以用于帶外通信信道。用于選擇通信類型的過程是預(yù)定的,并且在兩個設(shè)備上是相同的,這保證了兩個設(shè)備選擇相同的通信類型。在實施方式中,在方框816,可能已成功建立了多個帶外信道,一個或兩個設(shè)備使用選擇算法確定使用它們中的哪一個。在實施方式中,選擇算法基于最快速度和最快連接時間來選擇一種帶外連接類型。在一個非限制例子中,兩個設(shè)備都支持藍(lán)牙TM、WiFi和直接WiFi。啟動設(shè)備使用以上所有三種啟動通信連接的建立。在一個實例中,藍(lán)牙TM將非??焖俚剡B接,并且因為其提供了足夠的帶寬,在啟動中途啟動設(shè)備選擇它并且放棄其他連接。在方框820,接近服務(wù)可通過顯示具有同意內(nèi)容傳輸?shù)目蛇x擇選項的用戶界面元素而推進(jìn)傳輸。在方框824,一旦接收到指示用戶同意共享內(nèi)容的數(shù)據(jù)(諸如在方框822),接近服務(wù)為共享服務(wù)提供通信套接字或一些其他通信信息以推進(jìn)通過通信媒介的信息交換,可用來通過帶外通信信道向接近設(shè)備發(fā)送內(nèi)容。接著在方框826,共享服務(wù)通過帶外通信信道向接近設(shè)備傳輸共享內(nèi)容。
在方框828,共享服務(wù)引發(fā)顯示用戶界面元素以指示內(nèi)容傳輸?shù)倪M(jìn)度。因此,為了與接近設(shè)備共享內(nèi)容,用戶操作應(yīng)用以在隊列中排列所選擇的內(nèi)容,通過用戶界面元素調(diào)用共享服務(wù),并且選擇將隊列中的內(nèi)容發(fā)送到接近設(shè)備。用戶敲擊兩個設(shè)備、一起搖晃兩個設(shè)備、將兩個設(shè)備充分接觸的放置在一起或執(zhí)行一些其他手勢以啟動接近連接。接著,啟動傳輸,用戶可以從進(jìn)度用戶界面知道傳輸什么時候完成。接近服務(wù)和共享服務(wù)一起允許應(yīng)用開發(fā)者交付這些用戶體驗而無需直接編程到接近提供器或帶外通信提供器。
圖9是顯示用于在接收到來自接近設(shè)備的內(nèi)容共享邀請后啟動和建立帶外連接的示例過程900的流程圖。在方框902,接近服務(wù)從接近提供器接收建立了接近連接的指示??赏ㄟ^用戶一起敲擊兩個設(shè)備、一起搖晃兩個設(shè)備、將兩個設(shè)備充分接觸的放置、進(jìn)入共用的物理或虛擬位置或執(zhí)行一些其他手勢而啟動接近連接。
在方框904,接近服務(wù)通過接近連接與另一個設(shè)備交換預(yù)先準(zhǔn)備的上下文信息。在如圖9所示的實施方式中,其上運(yùn)行接近服務(wù)的設(shè)備沒有預(yù)先準(zhǔn)備的上下文信息要發(fā)送。
在方框906,接近服務(wù)確定接近連接的聯(lián)合接近上下文包括另一個設(shè)備已在隊列中排列了要與設(shè)備共享的內(nèi)容的指示。另一個設(shè)備可通過參考圖8所述的相同或相似的方式選擇這個用于共享的內(nèi)容。
在方框908,接近服務(wù)通過接近提供器交換接近連接的共享密鑰,其可用來保護(hù)帶外通信信道的安全。
在方框910,接近服務(wù)啟動一個或多個用于與接近設(shè)備進(jìn)行通信的帶外通信信道的建立。所選擇的通信提供器(諸如藍(lán)牙?、Wi-Fi?、直接Wi-FiTM或其他通信提供器類型)建立與配對設(shè)備的連接。
在方框912,接近服務(wù)協(xié)商帶外通信信道類型。帶外通信信道類型可以是藍(lán)牙?、WiFi?、直接WiFiTM或其他通信提供器類型。接近服務(wù)選擇在兩個設(shè)備上都可用的一種帶外通信信道類型,如果超過一種的帶外通信信道類型在兩個設(shè)備上都可用,則根據(jù)預(yù)定的方法選擇一種。例如,在方框910可能建立了超過一種的帶外通信信道。在那種情況下,一個或兩個設(shè)備采用選擇算法以選擇其中一種以供使用。
在實施方式中,選擇算法基于最快速度和最快連接時間選擇帶外連接類型。在一個非限制例子中,兩個設(shè)備都支持藍(lán)牙TM、WiFi和直接WiFi。啟動設(shè)備使用以上所有三種啟動通信連接的建立。在一個實例中,藍(lán)牙TM將非??焖俚倪B接,并且因為其提供了足夠的帶寬,在啟動中期啟動設(shè)備選擇它并且放棄其他連接。在可替換的實施方式中,在建立任何帶外通信信道之前協(xié)商帶外通信信道類型。
在方框914,接近服務(wù)通過引發(fā)顯示具有同意從另一個設(shè)備接收共享內(nèi)容的可選擇選項的用戶界面元素而推進(jìn)共享。向用戶提供同意接收共享內(nèi)容的可選擇選項增強(qiáng)了用戶體驗以及設(shè)備隱私和安全。用戶界面還可包括關(guān)于共享內(nèi)容的信息(諸如文件名、文件類型、文件大小等)。
在方框916,一旦接收到指示用戶同意的用戶輸入,在918,接近服務(wù)引發(fā)設(shè)備的共享服務(wù)的發(fā)起。共享服務(wù)處理共享內(nèi)容的接收。
在方框920,接近服務(wù)為共享服務(wù)提供通信套接字的或一些其他通信信息以推進(jìn)通過通信媒介的信息交換,可用于通過帶外通信信道向接近設(shè)備發(fā)送內(nèi)容。在方框922,共享服務(wù)通過帶外通信信道從接近設(shè)備接收共享內(nèi)容。
在方框924,共享服務(wù)引發(fā)顯示用戶界面元素以指示內(nèi)容傳輸?shù)倪M(jìn)度。這允許用戶看到內(nèi)容正在傳輸,并在內(nèi)容傳輸完成時警告他或她。
在方框926,共享服務(wù)引發(fā)顯示具有發(fā)起應(yīng)用來查看接收到的內(nèi)容的可選擇選項的用戶界面元素。在一個非限制例子中,如果接收到的內(nèi)容是視頻文件,那么用戶界面元素可呈現(xiàn)發(fā)起媒體播放器應(yīng)用來觀看視頻文件的可選擇選項。在方框928,一旦從用戶設(shè)備接收到指示用戶同意發(fā)起應(yīng)用的輸入,在方框930,共享服務(wù)引發(fā)應(yīng)用的發(fā)起。
因此,為了從接近設(shè)備接收共享的內(nèi)容,用戶敲擊設(shè)備、一起搖晃設(shè)備、將設(shè)備齊平地放置、讓設(shè)備進(jìn)入到諸如互聯(lián)網(wǎng)聊天室的虛擬空間,或執(zhí)行一些其他手勢以啟動接近連接。用戶同意內(nèi)容的接收,并且用戶可從進(jìn)度用戶界面得知傳輸何時完成。接著提示用戶發(fā)起應(yīng)用來查看內(nèi)容。接近服務(wù)和共享服務(wù)一起允許應(yīng)用開發(fā)者交付這些用戶體驗,而無需直接編程到接近無線電或帶外通信無線電。
從應(yīng)用狀態(tài)推斷預(yù)先準(zhǔn)備的上下文
圖10是顯示用于從應(yīng)用狀態(tài)推斷預(yù)先準(zhǔn)備的上下文的示例過程1000的流程圖。在方框1002,接近服務(wù)從接近提供器接收已建立了接近連接的指示。
在方框1004,接近服務(wù)從應(yīng)用狀態(tài)推斷預(yù)先準(zhǔn)備的接近功能。在如圖10所示的實施方式中,應(yīng)用沒有注冊以執(zhí)行任何接近功能。作為替代,應(yīng)用僅建立了某個狀態(tài),并且接近服務(wù)從那個狀態(tài)推斷期望的接近功能。在一個非限制例子中,在建立接近連接時在應(yīng)用內(nèi)選擇內(nèi)容。接近服務(wù)從應(yīng)用狀態(tài)推斷出期望的接近功能是通過共享服務(wù)傳輸內(nèi)容。
在另一個非限制例子中,前臺應(yīng)用可以是在建立接近連接時被使得能夠運(yùn)行的具有多用戶協(xié)作特征的應(yīng)用(諸如計算機(jī)游戲中的多玩家特征)。接近服務(wù)可推斷出期望的接近功能是用戶希望發(fā)起與通過接近連接而連接的設(shè)備上的對等應(yīng)用的對等連接,從而利用多用戶協(xié)作特征。在方框1006,接近服務(wù)確定聯(lián)合接近上下文包括推斷的預(yù)先準(zhǔn)備的功能。
在方框1008,接近服務(wù)與另一個設(shè)備交換指示推斷的接近功能的預(yù)先準(zhǔn)備的上下文信息,從而使得另一個設(shè)備可確定聯(lián)合接近上下文,并采取步驟以便在它這端推進(jìn)預(yù)先準(zhǔn)備的功能。在方框1010,接近服務(wù)引發(fā)顯示包括同意接近動作以便推進(jìn)推斷的預(yù)先準(zhǔn)備的功能的可選擇選項的用戶界面元素。
在方框1012,一旦接收到指示用戶同意的輸入,在方框1014,接近服務(wù)啟動接近動作以推進(jìn)推斷的接近功能。例如,在推斷的預(yù)先準(zhǔn)備的功能是共享所選擇的內(nèi)容時,接近服務(wù)可按照具體實施方式中在別處描述的方式發(fā)起共享服務(wù),協(xié)商并建立帶外連接以共享內(nèi)容。在推斷的預(yù)先準(zhǔn)備的功能是與另一個設(shè)備建立對等連接時,接近服務(wù)可協(xié)商并建立到另一個設(shè)備的帶外連接,并且向前臺應(yīng)用提供套接字或一些其他通信信息以推進(jìn)通過通信媒介的信息交換,可用于通過具體實施方式部分中在別處描述的方式與另一個設(shè)備上的對等應(yīng)用進(jìn)行通信。
圖3-10描述了顯示依照多種實施方式的示例過程的流程圖。這些過程的操作被圖示為個別的方框,并且參考那些方框而概述了這些操作。過程被圖示為邏輯流程圖,他們的每個操作可代表可由硬件、軟件或其組合而實現(xiàn)的一組操作。在軟件的上下文中,操作代表存儲在一個或多個計算機(jī)存儲媒體上的計算機(jī)可執(zhí)行指令,當(dāng)由一個或多個處理器執(zhí)行時,所述計算機(jī)可執(zhí)行指令使得一個或多個處理器能夠執(zhí)行所述的操作。一般來說,計算機(jī)可執(zhí)行指令包括執(zhí)行特定功能或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、模塊、組件、數(shù)據(jù)結(jié)構(gòu)等。所描述的操作順序并未試圖解釋為限制,并且任意數(shù)量的所描述的操作可以任意順序進(jìn)行組合、分離到子操作和/或并行執(zhí)行以實現(xiàn)所述過程。根據(jù)本公開多種實施方式的過程可僅包括邏輯流程圖中所描述的操作的一部分或全部。
計算機(jī)可讀媒體
根據(jù)所使用的計算設(shè)備的配置和類型,圖2中的接近設(shè)備200的存儲器204可包括易失性存儲器(諸如隨機(jī)存取存儲器(RAM))和/或非易失性存儲器(諸如只讀存儲器(ROM)、閃存等)。存儲器204還可包括另外的可移除存儲裝置和/或不可移除存儲裝置,包括但不限于:可以提供用于接近設(shè)備200的計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性存儲的閃存、磁存儲裝置、光存儲裝置和/或盒帶存儲裝置。
存儲器204是計算機(jī)可讀媒體的一個例子。計算機(jī)可讀媒體包括至少兩種類型的計算機(jī)可讀媒體,也就是計算機(jī)存儲媒體和通信媒體。
計算機(jī)存儲媒體包括以任何處理或技術(shù)實現(xiàn)的,用于存儲諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)之類的信息的易失性和非易失性、可移除和不可移除媒體。計算機(jī)存儲媒體包括但不限于:相變存儲器(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電子可擦除可編程只讀存儲器(EEPROM)、閃存或其他存儲器技術(shù)、緊湊盤只讀存儲器(CD-ROM)、數(shù)字多用途盤(DVD)或其他光學(xué)存儲裝置、磁帶盒、磁帶、磁盤存儲裝置或其他磁性存儲設(shè)備,或任何其他可被用來存儲由計算設(shè)備訪問的信息的非傳輸媒介。
作為對照,通信媒體可包含諸如載波或其他傳輸機(jī)制之類的調(diào)制數(shù)據(jù)信號中的計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。如此處所定義的那樣,計算機(jī)存儲媒體不包括通信媒體。
總結(jié)
盡管本公開使用了特定于結(jié)構(gòu)特征和/或方法動作的語言,但是本發(fā)明并不限于所描述的特定特征或動作。相反,所述特定特征和動作都作為實現(xiàn)本發(fā)明的示例形式而被公開。