1. 程式人生 > >android 雙SD卡切換 SD SWAP 方案,如何恢復 設定- 儲存- 預設儲存器 的使用者選擇功

android 雙SD卡切換 SD SWAP 方案,如何恢復 設定- 儲存- 預設儲存器 的使用者選擇功

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               
修改涉及到的檔案:
-       package/app/settings/。。。/deviceinfo/Memory.java:恢復“預設儲存器”的選擇功能
-       StorageManager.java的getDefaultPath()方法:取得“預設儲存器”的實際路徑
 
 
針對ICS2版本:
1.    修改package/app/settings/。。。/deviceinfo/Memory.java
 
修改點:下面的程式碼可能跟貴司現有的程式碼不一致,但思路是一樣的,即: 把原來通過FeatureOption.MTK_SWAP_STATIC_MODE包著的“移除預設儲存器選擇功能”的程式碼段disable掉,如下:
 
 public void onCreate(Bundle icicle) {
. . . . . .
 if(FeatureOption.MTK_2SDCARD_SWAP) {
          
//把判斷條件裡的FeatureOption.MTK_SWAP_STATIC_MODE修改成false
               if(FeatureOption.MTK_SWAP_STATIC_MODE)   à  false
                  
            {
                     getPreferenceScreen().removePreference(mDefaultWriteCategory);
                 }
                       IntentFilter mFilter = new IntentFilter();
                 mFilter.addAction(ACTION_DYNAMIC_SD_SWAP);
                       getActivity().registerReceiver(mDynSwapReceiver, mFilter);
             }
}
 
. . . . . .
 
public void onResume() {
....
 
// 把判斷條件裡的FeatureOption.MTK_SWAP_STATIC_MODE修改成false
// if(!(FeatureOption.MTK_2SDCARD_SWAP && FeatureOption.MTK_SWAP_STATIC_MODE)) {     à false
            dynamicShowDefaultWriteCategory();
}
 
---------
 
    public boolean onPreferenceChange(Preference preference, Object newValue){
    //把判斷條件裡的FeatureOption.MTK_SWAP_STATIC_MODE修改成false if(FeatureOption.MTK_2SDCARD_SWAP && FeatureOption.MTK_SWAP_STATIC_MODE) {  à false
            return false;
        }
        if (preference != null && preference instanceof RadioButtonPreference) {
            if(mDeafultWritePathPref != null) {
                mDeafultWritePathPref.setChecked(false);
            }
                 mStorageManager.setDefaultPath(preference.getKey());
                 mDeafultWritePathPref = (RadioButtonPreference)preference;
            return true;
        }
        return false;
    }
   
    private final Runnable mUpdateRunnable = new Runnable() {
        public void run() {
//把判斷條件裡的FeatureOption.MTK_SWAP_STATIC_MODE修改成false
   if(!(FeatureOption.MTK_2SDCARD_SWAP && FeatureOption.MTK_SWAP_STATIC_MODE) ) {  à false
                 dynamicShowDefaultWriteCategory();
            }
        }
    };
. . . . . .
 
2.       StorageManager.java
把getDefaultPath()方法改成以下這樣:
public static String getDefaultPath() {
       String path = DEFAULT_PATH;
        try {
            path = SystemProperties.get(PROP_SD_DEFAULT_PATH, DEFAULT_PATH);
           } catch (IllegalArgumentException e) {
                    Log.e(TAG, "IllegalArgumentException when get default path:"+e);
           }
          
    Log.i(TAG, "getDefaultPath path="+path);
        return path;
}:
. . . . . .
 
針對ICS版本:
1.       修改package/app/settings/。。。/deviceinfo/Memory.java
下面的程式碼可能跟貴司現有的程式碼不一致,但思路是一樣的,即: 把原來通過FeatureOption. MTK_2SDCARD_SWAP包著的“移除預設儲存器選擇功能”的程式碼段enable,如下:
 
主要有以下修改點:
// 把判斷條件裡的!FeatureOption.MTK_2SDCARD_SWAP修改成true,讓程式碼可以被執行到
if(!FeatureOption.MTK_2SDCARD_SWAP) {    à true
      dynamicShowDefaultWriteCategory();
}
. . . . . .
public boolean onPreferenceChange(Preference preference, Object newValue){
        //把判斷條件裡的FeatureOption.MTK_2SDCARD_SWAP修改成false,讓程式碼不要被執行到
        if(FeatureOption.MTK_2SDCARD_SWAP) {     à false
     
                 return false;
        }
. . . . . .
 
//把判斷條件裡的FeatureOption.MTK_2SDCARD_SWAP修改成false,讓程式碼不要被執行到
if(FeatureOption.MTK_2SDCARD_SWAP) {     à false
        getPreferenceScreen().removePreference(mDefaultWriteCategory);
}
. . . . . .
 
2.       StorageManager.java
把getDefaultPath()方法改成以下這樣:
public static String getDefaultPath() {
        String path = DEFAULT_PATH;
       
        try {
            path = SystemProperties.get(PROP_SD_DEFAULT_PATH, DEFAULT_PATH);
                   } catch (IllegalArgumentException e) {
                            Log.e(TAG, "IllegalArgumentException when get default path:"+e);
                   }
                  
             Log.i(TAG, "getDefaultPath path="+path);
        return path;
}

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述