1、SharedPreferences的作用域
您可以通過調(diào)用以下兩種方法之一創(chuàng)建新的共享首選項(xiàng)文件或訪問現(xiàn)有的文件:
(1)getSharedPreferences(String name, int mode)—保存的數(shù)據(jù)會(huì)單獨(dú)存儲(chǔ)到指定name 的文件中见间,因此可以共享到當(dāng)前整個(gè)應(yīng)用。您可以從您的應(yīng)用中的任何Context調(diào)用此方法。
雖然MODE_WORLD_READABLE和MODE_WORLD_WRITABLE起初是可以將數(shù)據(jù)共享給其他應(yīng)用的,但是API 17 以上版本已經(jīng)禁止使用了。
(2)getPreferences(int mode)— 這樣保存的數(shù)據(jù)僅供當(dāng)前Activity共享坞淮。
2、應(yīng)用數(shù)據(jù)所在內(nèi)部存儲(chǔ)器的目錄結(jié)構(gòu)
應(yīng)用數(shù)據(jù)保存在/data/...(中間有幾層不太清楚陪捷,不知是否不同手機(jī)層次不同)/應(yīng)用包名,這個(gè)目錄下诺擅,其下結(jié)構(gòu)為
可以通過Context.getFileDir()獲取到files這個(gè)目錄市袖,還有其他getCacheDir(),getDataDir()(API 24+)等等。
3苍碟、內(nèi)部存儲(chǔ)器的讀寫
(1)寫入到內(nèi)部存儲(chǔ):
使用文件名稱和操作模式調(diào)用openFileOutput(String name , int mode)酒觅。 這將返回一個(gè)FileOutputStream。
(2)從內(nèi)部存儲(chǔ)讀取文件:調(diào)用openFileInput(String name)并向其傳遞要讀取的文件名稱微峰。 這將返回一個(gè)FileInputStream舷丹。
以上都是對(duì)files目錄(見2中目錄結(jié)構(gòu))下的文件進(jìn)行操作。
4蜓肆、外部存儲(chǔ)器
盡管外部存儲(chǔ)可被用戶和其他應(yīng)用進(jìn)行修改颜凯,但您可在此處保存兩類文件:
(1)公共文件:應(yīng)供其他應(yīng)用和用戶自由使用的文件。 當(dāng)用戶卸載您的應(yīng)用時(shí)仗扬,用戶應(yīng)仍可以使用這些文件症概。例如,您的應(yīng)用拍攝的照片或其他已下載的文件早芭。
(2)私有文件:屬于您的應(yīng)用且在用戶卸載您的應(yīng)用時(shí)應(yīng)予刪除的文件彼城。 盡管這些文件在技術(shù)上可被用戶和其他應(yīng)用訪問(因?yàn)樗鼈兇鎯?chǔ)在外部存儲(chǔ)中), 但它們實(shí)際上不向您的應(yīng)用之外的用戶提供任何輸出值退个。 當(dāng)用戶卸載您的應(yīng)用時(shí)募壕,系統(tǒng)會(huì)刪除應(yīng)用外部私有目錄中的所有文件。例如语盈,您的應(yīng)用下載的其他資源或臨時(shí)介質(zhì)文件舱馅。
如果您要將公共文件保存在外部存儲(chǔ)設(shè)備上,請(qǐng)使用getExternalStoragePublicDirectory(String type)方法獲取表示外部存儲(chǔ)設(shè)備上相應(yīng)目錄的File黎烈。 Type可以是DIRECTORY_MUSIC,DIRECTORY_PICTURES,DIRECTORY_MOVIES,DIRECTORY_DOWNLOADS,DIRECTORY_DCIM等习柠。
如果您要保存您的應(yīng)用專用文件,您可以通過調(diào)用getExternalFilesDir(String type)并向其傳遞指示您想要的目錄類型的名稱照棋,從而獲取相應(yīng)的目錄资溃。如果傳入null,返回您的應(yīng)用的專用目錄的根目錄烈炭。即/storage/emulated/0/Android/data/應(yīng)用包名/files溶锭。
5、刪除文件
6符隙、系統(tǒng)Intent動(dòng)作(Action)類型
(1)Intent.ACTION_DIAL:撥好號(hào)碼趴捅,等用戶來發(fā)起通話,Uri格式:“tel:+phone number”
(2)Intent.ACTION_CALL:直接撥打電話霹疫,Uri格式:“tel:+phone number”
(3)Intent.ACTION_PICK