国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      文件共享方法及裝置與流程

      文檔序號:12124166閱讀:288來源:國知局
      文件共享方法及裝置與流程

      本發(fā)明屬于信息技術(shù)領(lǐng)域,尤其涉及一種文件共享方法及裝置。



      背景技術(shù):

      現(xiàn)有的不同應(yīng)用程序(APP,Application)之間的文件共享,通過將文件保存在SD卡的sdcard/下的目錄,或者保存至都可以訪問到的路徑下,以此實現(xiàn)文件數(shù)據(jù)的共享。

      在發(fā)明人實現(xiàn)本方案的過程中,發(fā)現(xiàn)在上述文件保存的方案中至少存在以下問題:雖然按照上述方案可以實現(xiàn)文件數(shù)據(jù)的共享,但是帶來了如文件容易被用戶誤刪除,寫入和讀取文件時都需要相應(yīng)的權(quán)限等問題。



      技術(shù)實現(xiàn)要素:

      本發(fā)明實施例的目的在于提供一種文件共享方法及裝置,旨在解決現(xiàn)有文件共享方案中出現(xiàn)如文件容易被用戶誤刪除,寫入和讀取文件時都需要相應(yīng)的權(quán)限的問題。

      第一方面,本發(fā)明實施例提供一種文件共享方法,包括:

      將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下;

      建立contentprovider的繼承類,并重寫建立的類中的openFile方法;

      為建立的類定義統(tǒng)一資源標(biāo)識符;

      第一應(yīng)用將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流;

      第二應(yīng)用通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      第二方面,本發(fā)明實施例提供一種文件共享裝置,包括:

      文件保存單元,用于將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下;

      類建立單元,用于建立contentprovider的繼承類,并重寫建立的類中的openFile方法;

      標(biāo)識定義單元,用于為建立的類定義統(tǒng)一資源標(biāo)識符;

      第一應(yīng)用單元,用于將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流;

      第二應(yīng)用單元,用于通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      在本發(fā)明實施例中,通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下,避免了寫入文件時所需的權(quán)限問題,使用戶無法刪除該與之目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,以使第一應(yīng)用能夠讀取自身預(yù)置目錄下的待共享文件,并將其讀取成輸入輸出流(IO流),其他應(yīng)用程序就可以通過URI來獲取IO流,以獲取該待共享文件。本實施例通過上述步驟,能夠避開SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      附圖說明

      圖1是本發(fā)明第一實施例提供的文件共享方法的實現(xiàn)流程圖;

      圖2是本發(fā)明第二實施例提供的文件共享方法的實現(xiàn)流程圖;

      圖3是本發(fā)明第三實施例提供的文件共享方法的實現(xiàn)流程圖;

      圖4是本發(fā)明第四實施例提供的文件共享方法的實現(xiàn)流程圖;

      圖5是本發(fā)明第五實施例提供的文件共享方法的實現(xiàn)流程圖;

      圖6是本發(fā)明第六及第七實施例提供的文件共享裝置的結(jié)構(gòu)示意圖;

      圖7是本發(fā)明實施例提供的文件共享方法的電子設(shè)備結(jié)構(gòu)示意圖。

      具體實施方式

      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      請參見圖1,圖1示出了本發(fā)明提供的第一實施例,一種文件共享方法,包括:

      S101,將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下。

      在本步驟,文件共享裝置在檢測到第一應(yīng)用的待共享文件后,將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下。

      具體地,目前用戶使用移動終端或者電腦端安裝各式應(yīng)用程序(APP,Application),每一APP在使用過程中均會按照該APP預(yù)置的保存路徑保存產(chǎn)生的文件。以操作系統(tǒng)為安卓(Android)系統(tǒng)的移動終端為例,移動終端在安裝了某APP后,該APP的在使用過程中產(chǎn)生的文件將按照該APP預(yù)置的保存規(guī)則保存至不同的目錄中。為避免文件共享裝置在保存文件時需要SD卡保存的權(quán)限問題,本實施例中,文件共享裝置將每一APP待保存文件保存在該APP的預(yù)置目錄下,以避免待保存文件寫入時所需SD卡寫入的權(quán)限問題,同時也保證用戶在使用過程中無法刪除該預(yù)置目錄下的文件。

      S102,建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      在本步驟中,文件共享裝置將建立contentprovider的繼承類,在建立了contentprovider的繼承類后,將重寫建立的類中的openFile方法。

      具體地,安卓系統(tǒng)(Android)提供了ContentProvider,ContentProvider為存儲和獲取數(shù)據(jù)提供統(tǒng)一的接口,可以在不同的應(yīng)用程序(APP)之間共享數(shù)據(jù)。實際應(yīng)用中,Android已經(jīng)為常見的一些數(shù)據(jù)提供了默認(rèn)的ContentProvider。Android內(nèi)置的許多數(shù)據(jù)都是使用ContentProvider形式,供開發(fā)者調(diào)用的(如視頻,音頻,圖片,通訊錄等)。當(dāng)應(yīng)用程序(APP)繼承ContentProvider類,并重寫該類用于提供數(shù)據(jù)和存儲數(shù)據(jù)的方法,就可以向其他應(yīng)用程序(APP)共享其數(shù)據(jù)。創(chuàng)建一個繼承自ContentProvider的類后,將重寫建立的類中的insert、delete、query、update、getType、onCreate方法,在這些方法中實現(xiàn)對數(shù)據(jù)源的操作。本步驟中,建立contentprovider的繼承類后,文件共享裝置重寫建立的類中的openFile方法。

      雖然使用其他方法也可以對外共享數(shù)據(jù),但數(shù)據(jù)訪問方式會因數(shù)據(jù)存儲的方式而不同,如:采用文件方式對外共享數(shù)據(jù),需要進(jìn)行文件操作讀寫數(shù)據(jù);采用sharedpreferences共享數(shù)據(jù),需要使用sharedpreferences API讀寫數(shù)據(jù)。而使用ContentProvider共享數(shù)據(jù)的好處是統(tǒng)一了數(shù)據(jù)訪問方式。

      S103,為建立的類定義統(tǒng)一資源標(biāo)識符。

      在本步驟中,文件共享裝置將為建立的類定義統(tǒng)一資源標(biāo)識符。具體地,文件共享裝置使用URI來定義建立的類。URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。

      S104,第一應(yīng)用將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      在本步驟中,第一應(yīng)用將保存至預(yù)置目錄的待共享文件讀取為輸入輸出流(IO流,Input Output Stream)。

      S105,第二應(yīng)用通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      在本步驟中,當(dāng)其他應(yīng)用程序(APP)需要獲取待共享文件時,可以通過同一資源標(biāo)識符(URI)來獲取第一應(yīng)用的輸入輸出流(IO流)。

      在本實施例中,文件共享裝置通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下,避免了寫入文件時所需SD卡寫入的權(quán)限問題,使用戶無法刪除該預(yù)置目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,以使第一應(yīng)用能夠讀取自身預(yù)置目錄下的待共享文件,并將其讀取成輸入輸出流,其他應(yīng)用程序就可以通過URI來獲取IO流,以獲取該待共享文件。本實施例通過上述步驟,能夠避免SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      請參見圖2,圖2是示出了本發(fā)明提供的第二實施例一種文件共享方法,包括:

      S201,將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下。

      文件共享裝置在檢測到第一應(yīng)用的待共享文件后,將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下。

      具體地,目前用戶使用移動終端或者電腦端安裝各式應(yīng)用程序(APP,Application),每一APP在使用過程中均會按照該APP預(yù)置的保存路徑保存產(chǎn)生的文件。以操作系統(tǒng)為安卓(Android)系統(tǒng)的移動終端為例,移動終端在安裝了某APP后,該APP的在使用過程中產(chǎn)生的文件將按照該APP預(yù)置的保存規(guī)則保存至不同的目錄中。為避免文件共享裝置在保存文件時需要SD卡保存的權(quán)限問題,本實施例中,文件共享裝置將每一APP待保存文件保存在該APP的預(yù)置目錄下,以避免待保存文件寫入時所需SD卡寫入的權(quán)限問題,同時也保證用戶在使用過程中無法刪除該預(yù)置目錄下的文件。

      S202,建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      在本步驟中,文件共享裝置將建立contentprovider的繼承類,在建立了contentprovider的繼承類后,將重寫建立的類中的openFile方法。

      具體地,安卓系統(tǒng)(Android)提供了ContentProvider,ContentProvider為存儲和獲取數(shù)據(jù)提供統(tǒng)一的接口,可以在不同的應(yīng)用程序(APP)之間共享數(shù)據(jù)。實際應(yīng)用中,Android已經(jīng)為常見的一些數(shù)據(jù)提供了默認(rèn)的ContentProvider。Android內(nèi)置的許多數(shù)據(jù)都是使用ContentProvider形式,供開發(fā)者調(diào)用的(如視頻,音頻,圖片,通訊錄等)。當(dāng)應(yīng)用程序(APP)繼承ContentProvider類,并重寫該類用于提供數(shù)據(jù)和存儲數(shù)據(jù)的方法,就可以向其他應(yīng)用程序(APP)共享其數(shù)據(jù)。創(chuàng)建一個繼承自ContentProvider的類后,將重寫建立的類中的insert、delete、query、update、getType、onCreate方法,在這些方法中實現(xiàn)對數(shù)據(jù)源的操作。本步驟中,建立contentprovider的繼承類后,文件共享裝置重寫建立的類中的openFile方法。

      S203,通過AndroidManifest.xml文件為所述建立的類,注冊統(tǒng)一資源標(biāo)識符中的內(nèi)容提供者以及內(nèi)容獲取路徑。

      在本步驟中,文件共享裝置通過AndroidManifest.xml配置文件為建立的類,注冊統(tǒng)一資源標(biāo)識符(URI)中的內(nèi)容提供者和內(nèi)容獲取路徑,并定義URI給其他應(yīng)用程序。

      S204,第一應(yīng)用將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      在本步驟中,第一應(yīng)用將保存至預(yù)置目錄的待共享文件讀取為輸入輸出流(IO流,Input Output Stream)。

      S205,第二應(yīng)用通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      在本步驟中,當(dāng)其他應(yīng)用程序(APP)需要獲取待共享文件時,可以通過同一資源標(biāo)識符(URI)來獲取第一應(yīng)用的輸入輸出流(IO流)。

      在本實施例中,文件共享裝置通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下,避免了寫入文件時所需SD卡寫入的權(quán)限問題,使用戶無法刪除該預(yù)置目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,還通過AndroidManifest.xml配置文件為所述建立的類,注冊統(tǒng)一資源標(biāo)識符(URI)中的內(nèi)容提供者以及內(nèi)容獲取路徑,以使第一應(yīng)用能夠讀取自身預(yù)置目錄下的待共享文件,并將其讀取成輸入輸出流,其他應(yīng)用程序就可以通過URI來獲取IO流,以獲取該待共享文件。本實施例通過上述步驟,能夠避免SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      請參見圖3,圖3是本發(fā)明第三實施例提供的文件共享方法,包括:

      S301,將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下。

      文件共享裝置在檢測到第一應(yīng)用的待共享文件后,將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下。

      具體地,目前用戶使用移動終端或者電腦端安裝各式應(yīng)用程序(APP,Application),每一APP在使用過程中均會按照該APP預(yù)置的保存路徑保存產(chǎn)生的文件。以操作系統(tǒng)為安卓(Android)系統(tǒng)的移動終端為例,移動終端在安裝了某APP后,該APP的在使用過程中產(chǎn)生的文件將按照該APP預(yù)置的保存規(guī)則保存至不同的目錄中。為避免文件共享裝置在保存文件時需要SD卡保存的權(quán)限問題,本實施例中,文件共享裝置將每一APP待保存文件保存在該APP的預(yù)置目錄下,以避免待保存文件寫入時所需SD卡寫入的權(quán)限問題,同時也保證用戶在使用過程中無法刪除該預(yù)置目錄下的文件。

      S302,建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      在本步驟中,文件共享裝置將建立contentprovider的繼承類,在建立了contentprovider的繼承類后,將重寫建立的類中的openFile方法。

      具體地,安卓系統(tǒng)(Android)提供了ContentProvider,ContentProvider為存儲和獲取數(shù)據(jù)提供統(tǒng)一的接口,可以在不同的應(yīng)用程序(APP)之間共享數(shù)據(jù)。實際應(yīng)用中,Android已經(jīng)為常見的一些數(shù)據(jù)提供了默認(rèn)的ContentProvider。Android內(nèi)置的許多數(shù)據(jù)都是使用ContentProvider形式,供開發(fā)者調(diào)用的(如視頻,音頻,圖片,通訊錄等)。當(dāng)應(yīng)用程序(APP)繼承ContentProvider類,并重寫該類用于提供數(shù)據(jù)和存儲數(shù)據(jù)的方法,就可以向其他應(yīng)用程序(APP)共享其數(shù)據(jù)。創(chuàng)建一個繼承自ContentProvider的類后,將重寫建立的類中的insert、delete、query、update、getType、onCreate方法,在這些方法中實現(xiàn)對數(shù)據(jù)源的操作。本步驟中,建立contentprovider的繼承類后,文件共享裝置重寫建立的類中的openFile方法。

      S303,為建立的類定義統(tǒng)一資源標(biāo)識符。

      在本步驟中,文件共享裝置將為建立的類定義統(tǒng)一資源標(biāo)識符。具體地,文件共享裝置使用URI來定義建立的類。URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。

      S304,第一應(yīng)用將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      在本步驟中,第一應(yīng)用將保存至預(yù)置目錄的待共享文件讀取為輸入輸出流(IO流,Input Output Stream)。

      S305,通過ContentResolver解析所述統(tǒng)一資源標(biāo)識符,并獲取所述統(tǒng)一資源標(biāo)識符指向的所述輸入輸出流,以獲取所述待共享文件。

      在本實施例中,文件共享裝置通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下,避免了寫入文件時所需SD卡寫入的權(quán)限問題,使用戶無法刪除該預(yù)置目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,以使第一應(yīng)用能夠讀取自身預(yù)置目錄下的待共享文件,并將其讀取成輸入輸出流,其他應(yīng)用程序通過ContentResolver解析所述統(tǒng)一資源標(biāo)識符,并獲取所述統(tǒng)一資源標(biāo)識符指向的所述輸入輸出流,以獲取該待共享文件。本實施例通過上述步驟,能夠避免SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      圖4示出了本發(fā)明第四實施例提供的一種文件共享方法,包括:

      S401,將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的date目錄下。

      文件共享裝置在檢測到第一應(yīng)用的待共享文件后,將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的data目錄下。

      具體地,目前用戶使用移動終端或者電腦端安裝各式應(yīng)用程序(APP,Application),每一APP在使用過程中均會按照該APP預(yù)置的保存路徑保存產(chǎn)生的文件。以操作系統(tǒng)為安卓(Android)系統(tǒng)的移動終端為例,移動終端在安裝了某APP后,該APP的在使用過程中產(chǎn)生的文件將按照該APP預(yù)置的保存規(guī)則保存至不同的目錄中。為避免文件共享裝置在保存文件時需要SD卡保存的權(quán)限問題,本實施例中,文件共享裝置將每一APP待保存文件保存在該APP的data目錄下,以避免待保存文件寫入時所需SD卡寫入的權(quán)限問題,同時也保證用戶在使用過程中無法刪除該data目錄下的文件。

      S402,建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      在本步驟中,文件共享裝置將建立contentprovider的繼承類,在建立了contentprovider的繼承類后,將重寫建立的類中的openFile方法。

      S403,為建立的類定義統(tǒng)一資源標(biāo)識符。

      在本步驟中,文件共享裝置將為建立的類定義統(tǒng)一資源標(biāo)識符。具體地,文件共享裝置使用URI來定義建立的類。URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。

      S404,第一應(yīng)用將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      在本步驟中,第一應(yīng)用將保存至預(yù)置目錄的待共享文件讀取為輸入輸出流(IO流,Input Output Stream)。

      S405,第二應(yīng)用通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      在本步驟中,當(dāng)其他應(yīng)用程序(APP)需要獲取待共享文件時,可以通過同一資源標(biāo)識符(URI)來獲取第一應(yīng)用的輸入輸出流(IO流)。

      在本實施例中,文件共享裝置通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的data目錄下,避免了寫入文件時所需SD卡寫入的權(quán)限問題,使用戶無法刪除該預(yù)置目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,以使第一應(yīng)用能夠讀取自身data目錄下的待共享文件,并將其讀取成輸入輸出流,其他應(yīng)用程序就可以通過URI來獲取IO流,以獲取該待共享文件。本實施例通過上述步驟,能夠避免SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      本發(fā)明還提供了如圖5所示的第五實施例,一種文件共享方法,包括:

      S501,將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下。

      在本步驟,文件共享裝置在檢測到第一應(yīng)用的待共享文件后,將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下。

      S502,建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      在本步驟中,文件共享裝置將建立contentprovider的繼承類,在建立了contentprovider的繼承類后,將重寫建立的類中的openFile方法。

      S503,為建立的類定義統(tǒng)一資源標(biāo)識符。

      在本步驟中,文件共享裝置將為建立的類定義統(tǒng)一資源標(biāo)識符。具體地,文件共享裝置使用URI來定義建立的類。URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。

      S504,第一應(yīng)用將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      在本步驟中,第一應(yīng)用將保存至預(yù)置目錄的待共享文件讀取為輸入輸出流(IO流,Input Output Stream)。

      S505,第二應(yīng)用通過所述建立的類的統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,并將所述輸入輸出流轉(zhuǎn)換為文本格式,以獲取所述待共享文件。

      在本步驟中,第二應(yīng)用通過建立的類的統(tǒng)一資源標(biāo)識符(URI)獲取待分享文件的輸入輸出流(IO流),并將獲取的IO流轉(zhuǎn)換成文本格式,從而得到該待分享文件。

      在本實施例中,文件共享裝置通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下,避免了寫入文件時所需SD卡寫入的權(quán)限問題,使用戶無法刪除該預(yù)置目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,以使第一應(yīng)用能夠讀取自身預(yù)置目錄下的待共享文件,并將其讀取成輸入輸出流,其他應(yīng)用程序就可以通過URI來獲取IO流,并對該IO流進(jìn)行轉(zhuǎn)換后獲取該待共享文件。本實施例通過上述步驟,能夠避免SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      在實際應(yīng)用中,Android提供了ContentProvider,一個程序可以通過實現(xiàn)一個ContentProvider的抽象接口將自己的數(shù)據(jù)完全暴露出去,而且ContentProviders是以類似數(shù)據(jù)庫中表的方式將數(shù)據(jù)暴露,也就是說ContentProvider就像一個“數(shù)據(jù)庫”。其他應(yīng)用程序獲取ContentProvider提供的數(shù)據(jù),與從數(shù)據(jù)庫中獲取數(shù)據(jù)的操作基本一樣,并采用URI來表示外界需要訪問的“數(shù)據(jù)庫”。

      在Content Provider中使用的查詢字符串有別于標(biāo)準(zhǔn)的SQL查詢。很多諸如select,add,delete,modify等操作都使用一種特殊的URI來進(jìn)行,這種URI由3個部分組成,“content://”,代表數(shù)據(jù)的路徑,和一個可選的標(biāo)識數(shù)據(jù)的ID。以下是一些示例URI:

      content://media/internal/images這個URI將返回設(shè)備上存儲的所有圖片;

      content://contacts/people/這個URI將返回設(shè)備上的所有聯(lián)系人信息;

      content://contacts/people/45這個URI返回單個結(jié)果(聯(lián)系人信息中ID為45的聯(lián)系人記錄);

      具體地,OpenFile為程序編寫時用于打開文件的函數(shù)。

      請參見圖6,圖6是本發(fā)明第四實施例提供的文件共享裝置的結(jié)構(gòu)示意圖,該裝置可以為終端設(shè)備或終端設(shè)備的一個模塊,該文件共享裝置包括:

      文件保存單元101,用于將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下。

      文件保存單元101在檢測到第一應(yīng)用的待共享文件后,將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下。

      具體地,目前用戶使用移動終端或者電腦端安裝各式應(yīng)用程序(APP,Application),每一APP在使用過程中均會按照該APP預(yù)置的保存路徑保存產(chǎn)生的文件。以操作系統(tǒng)為安卓(Android)系統(tǒng)的移動終端為例,移動終端在安裝了某APP后,該APP的在使用過程中產(chǎn)生的文件將按照該APP預(yù)置的保存規(guī)則保存至不同的目錄中。為避免文件保存單元101在保存文件時需要SD卡保存的權(quán)限問題,本實施例中,文件保存單元101將每一APP待保存文件保存在該APP的預(yù)置目錄下,以避免待保存文件寫入時所需SD卡寫入的權(quán)限問題,同時也保證用戶在使用過程中無法刪除該預(yù)置目錄下的文件。

      類建立單元102,用于建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      類建立單元102將建立contentprovider的繼承類,在建立了contentprovider的繼承類后,將重寫建立的類中的openFile方法。

      具體地,安卓系統(tǒng)(Android)提供了ContentProvider,ContentProvider為存儲和獲取數(shù)據(jù)提供統(tǒng)一的接口,可以在不同的應(yīng)用程序(APP)之間共享數(shù)據(jù)。實際應(yīng)用中,Android已經(jīng)為常見的一些數(shù)據(jù)提供了默認(rèn)的ContentProvider。Android內(nèi)置的許多數(shù)據(jù)都是使用ContentProvider形式,供開發(fā)者調(diào)用的(如視頻,音頻,圖片,通訊錄等)。當(dāng)應(yīng)用程序(APP)繼承ContentProvider類,并重寫該類用于提供數(shù)據(jù)和存儲數(shù)據(jù)的方法,就可以向其他應(yīng)用程序(APP)共享其數(shù)據(jù)。創(chuàng)建一個繼承自ContentProvider的類后,將重寫建立的類中的insert、delete、query、update、getType、onCreate方法,在這些方法中實現(xiàn)對數(shù)據(jù)源的操作。本步驟中,建立contentprovider的繼承類后,類建立單元102重寫建立的類中的openFile方法。

      雖然使用其他方法也可以對外共享數(shù)據(jù),但數(shù)據(jù)訪問方式會因數(shù)據(jù)存儲的方式而不同,如:采用文件方式對外共享數(shù)據(jù),需要進(jìn)行文件操作讀寫數(shù)據(jù);采用sharedpreferences共享數(shù)據(jù),需要使用sharedpreferences API讀寫數(shù)據(jù)。而使用ContentProvider共享數(shù)據(jù)的好處是統(tǒng)一了數(shù)據(jù)訪問方式。

      標(biāo)識定義單元103,用于為建立的類定義統(tǒng)一資源標(biāo)識符。

      標(biāo)識定義單元103將為建立的類定義統(tǒng)一資源標(biāo)識符。具體地,標(biāo)識定義單元103使用URI來定義建立的類。URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。

      第一應(yīng)用單元104,用于將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      第一應(yīng)用單元104將保存至第一應(yīng)用的預(yù)置目錄的待共享文件讀取為輸入輸出流(IO流,Input Output Stream)。

      第二應(yīng)用單元105,用于通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      當(dāng)其他應(yīng)用程序(APP)需要獲取待共享文件時,第二應(yīng)用單元105可以通過同一資源標(biāo)識符(URI)來獲取第一應(yīng)用的輸入輸出流(IO流)。

      在本實施例中,文件共享裝置通過將第一應(yīng)用的待共享文件保存至該第一應(yīng)用的預(yù)置目錄下,避免了寫入文件時所需SD卡寫入的權(quán)限問題,使用戶無法刪除該預(yù)置目錄下的待共享文件,同時通過建立contentprovider的繼承類,并重寫建立的類中的openFile方法,以使第一應(yīng)用能夠讀取自身預(yù)置目錄下的待共享文件,并將其讀取成輸入輸出流,其他應(yīng)用程序就可以通過URI來獲取IO流,以獲取該待共享文件。本實施例通過上述步驟,能夠避免SD卡的讀取權(quán)限,同時避免了用戶因為誤操作導(dǎo)致待共享文件被刪除的問題。

      本發(fā)明提供的第七實施例如圖6所示,一種文件共享裝置包括:

      文件保存單元101,用于將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的預(yù)置目錄下。

      類建立單元102,用于建立contentprovider的繼承類,并重寫建立的類中的openFile方法。

      標(biāo)識定義單元103,用于為建立的類定義統(tǒng)一資源標(biāo)識符。

      第一應(yīng)用單元104,用于將所述預(yù)置目錄下的所述待共享文件讀取為輸入輸出流。

      第二應(yīng)用單元105,用于通過所述統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,以獲取所述待共享文件。

      進(jìn)一步地,在第七實施例中,標(biāo)識定義單元103具體用于:通過AndroidManifest.xml文件為所述建立的類,注冊統(tǒng)一資源標(biāo)識符中的內(nèi)容提供者以及內(nèi)容獲取路徑。

      進(jìn)一步地,在第七實施例中,第二應(yīng)用單元105具體用于:通過ContentResolver解析所述統(tǒng)一資源標(biāo)識符,并獲取所述統(tǒng)一資源標(biāo)識符指向的所述輸入輸出流。

      進(jìn)一步地,在第七實施例中,文件保存單元101具體用于:將第一應(yīng)用的待共享文件保存在所述第一應(yīng)用的date目錄下。

      進(jìn)一步地,在第七實施例中,第二應(yīng)用單元105具體用于:通過所述建立的類的統(tǒng)一資源標(biāo)識符獲取所述輸入輸出流,并將所述輸入輸出流轉(zhuǎn)換為文本格式,以獲取所述待共享文件。

      圖7是本申請實施例提供的文件共享方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖,如圖7所示,該設(shè)備包括:

      一個或多個處理器610以及存儲器620,圖6中以一個處理器610為例。

      執(zhí)行文件共享方法的設(shè)備還可以包括:輸入裝置630和輸出裝置640。

      處理器610、存儲器620、輸入裝置630和輸出裝置640可以通過總線或者其他方式連接,圖6中以通過總線650連接為例。

      存儲器620作為一種非易失性計算機可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計算機可執(zhí)行程序以及模塊,如本申請實施例中的文件共享方法對應(yīng)的程序指令/模塊。處理器610通過運行存儲在存儲器620中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例的文件共享方法。

      存儲器620可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)文件共享裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實施例中,存儲器620可選包括相對于處理器610遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至文件共享裝置。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。

      輸入裝置630可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與文件共享裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。輸出裝置640可包括顯示屏等顯示設(shè)備。

      所述一個或者多個模塊存儲在所述存儲器620中,當(dāng)被所述一個或者多個處理器610執(zhí)行時,執(zhí)行上述任意方法實施例中的文件共享方法。

      上述產(chǎn)品可執(zhí)行本申請實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本申請實施例所提供的方法。

      本發(fā)明實施例的電子設(shè)備以多種形式存在,包括但不限于:

      (1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。

      (2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。

      (3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、通訊錄器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。

      (4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。

      (5)其他具有數(shù)據(jù)交互功能的電子裝置。

      在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或模塊的間接耦合或通信連接,可以是電性,機械或其它的形式。

      所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。

      另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。

      所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定都是本發(fā)明所必須的。

      在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關(guān)描述。

      以上為對本發(fā)明所提供的文件共享方法及裝置的描述,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1