編輯:Android開發實例
從Android 2.3開始新增了一個OBB文件系統和StorageManager類用來管理外部存儲上的數據安全。如果你過去開發過Symbian S60第三版或以上的版本可能發現都有一個隔離的文件系統,僅根據自己應用的UID才能讀取,當然這樣的設計在iOS和WP7均實現了,Android123提示大家這種叫做隔離文件系統,為什麼Android 2.3的android.os.storage.StorageManager類就是來解決這個問題的。
如果我們設計一款資源包含比較多的游戲,可能你會發現最終生成的APK文件可能高達300MB,但是APK文件很大導致Android系統無法正常安裝,而這麼大其實都是游戲中用到的資源文件,我們放到SD卡上可能其他應用也可以訪問,比如說系統的圖片管理器會索引游戲中的圖片資源,而音樂播放器也會索引資源中的音樂,所以Android 2.3的OBB文件(Opaque Binary Blob)可以很好的解決大文件在SD卡上分離出APK文件,同時別的程序沒有權限訪問這樣一種隔離的文件系統。
android.os.storage.StorageManager類的實例化方法需要使用getSystemService(Contxt.STORAGE_SERVICE)才可以,Android開發網再次提醒這是一個API Level至少為9才能調用的類,注意SDK版本以及目標設備的固件。
String getMountedObbPath(String filename) //通過一個文件名判斷掛載的OBB文件路徑
boolean isObbMounted(String filename) //這個OBB文件是否掛載了
boolean mountObb(String filename, String key, OnObbStateChangeListener listener) //掛載一個OBB文件
boolean unmountObb(String filename, boolean force, OnObbStateChangeListener listener) //反掛載一個obb文件,這個方法是異步的,第二個參數可以強制反掛載。
我們可以看到掛載和反掛載obb文件時都有一個狀態回調的類,位於android.os.storage.OnObbStateChangeListener,OnObbStateChangeListener接口實現了一個void onObbStateChange(String path, int state) 方法來回調狀態,第二個參數state的狀態有:
int ERROR_ALREADY_MOUNTED 這個OBB已經掛載了
int ERROR_COULD_NOT_MOUNT 這個OBB不能掛在到系統.
int ERROR_COULD_NOT_UNMOUNT 這個OBB不能反掛載.
int ERROR_INTERNAL 一個內部的系統錯誤導致正在重試掛載obb
int ERROR_NOT_MOUNTED 一個反掛載調用執行時這個obb還沒有掛在過.
int ERROR_PERMISSION_DENIED 當前程序沒有使用這個obb的權限.
int MOUNTED The obb容器已經掛載好了,可以使用了.
int UNMOUNTED The OBB容易現在反掛載完成,將無法再使用.
從體而言我們看到Android 2.3系統中很多新的功能都很實用,同時Google正在吸取其他平台的優點,通過更多的實現方法更靈活的處理,而不是其他系統那樣封閉,導致了不越獄很多事情都無法做的尴尬問題,Android系統既保證了安全,又處理好了靈活的功能。
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
在移動應用滿天飛的時代,隨著移動支付的盛行,很多應用中都集成了支付功能。之前的支付一直不是我負責,近期這個項目我負責訂單模塊少不了要做支付,每每提起
在android上導入zxing.jar包,總是報錯: Could not find class com.google.zxing.MultiFormatWrit
AVD的全稱為:Android Virtual Device,就是Android運行的虛擬設備,他是Android的模擬器識別。建立的Android要運行,必須創