Android FM模塊學習之四源碼解析(四)

我今天想分享的是FM模塊的保存方法,即FmSharedPreferences.javajava

FmSharedPreferences(Context context)在構造方法中加載Load()方法,.net

    public void  Load(){
          Log.d(LOGTAG, "Load preferences ");
          if(mContext == null)
          {
             return;
          }
          SharedPreferences sp = mContext.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
          mTunedFrequency = sp.getInt(PREF_LAST_TUNED_FREQUENCY, DEFAULT_NO_FREQUENCY);
          mRecordDuration = sp.getInt(LAST_RECORD_DURATION, RECORD_DUR_INDEX_0_VAL);
          mAFAutoSwitch = sp.getBoolean(LAST_AF_JUMP_VALUE, true);
          mAudioOutputMode = sp.getBoolean(AUDIO_OUTPUT_MODE, true);
          if(sp.getInt(FMCONFIG_COUNTRY, 0) == REGIONAL_BAND_USER_DEFINED) {
             mBandMinFreq = sp.getInt(FMCONFIG_MIN, mBandMinFreq);
             mBandMaxFreq = sp.getInt(FMCONFIG_MAX, mBandMaxFreq);
             mChanSpacing = sp.getInt(FMCONFIG_STEP, mChanSpacing);
          }
     
          int num_lists = sp.getInt(LIST_NUM, 1);
          if (mListOfPlists.size() == 0) {
          for (int listIter = 0; listIter < num_lists; listIter++) {
                 String listName = sp.getString(LIST_NAME + listIter, "FM - " + (listIter+1));
                 int numStations = sp.getInt(STATION_NUM + listIter, 1);
                 if (listIter == 0) {
                     createFirstPresetList(listName);
                 } else {
                     createPresetList(listName);
                 }
                 PresetList curList = mListOfPlists.get(listIter);
                 for (int stationIter = 0; stationIter < numStations; stationIter++) {
                      String stationName = sp.getString(STATION_NAME + listIter + "x" + stationIter,
                                                          DEFAULT_NO_NAME);
                      int stationFreq = sp.getInt(STATION_FREQUENCY + listIter + "x" + stationIter,
                                                       DEFAULT_NO_FREQUENCY);
                      PresetStation station = curList.addStation(stationName, stationFreq);
     
                      int stationId = sp.getInt(STATION_ID + listIter + "x" + stationIter,
                                                  DEFAULT_NO_STATIONID);
                      station.setPI(stationId);
     
                      int pty = sp.getInt(STATION_PTY + listIter + "x" + stationIter, DEFAULT_NO_PTY);
                      station.setPty(pty);
     
                      int rdsSupported = sp.getInt(STATION_RDS + listIter + "x" + stationIter,
                                                     DEFAULT_NO_RDSSUP);
                      if (rdsSupported != 0) {
                          station.setRDSSupported(true);
                      } else {
                          station.setRDSSupported(false);
                      }
          /* Load Configuration */     
              setCountry(sp.getInt(FMCONFIG_COUNTRY, REGIONAL_BAND_NORTH_AMERICA));
          /* Last list the user was navigating */
          mListIndex = sp.getInt(LAST_LIST_INDEX, 0);
          if(mListIndex >= num_lists)
          {mListIndex=0;
          }
       }ci

初始化取出sp一些數據
 get

根據系統初始化地區設置當地頻率it

    /*Load Configuration */
     
         if (Locale.getDefault().equals(Locale.CHINA)) {
     
             setCountry(sp.getInt(FMCONFIG_COUNTRY, REGIONAL_BAND_CHINA));
     
         } else {
     
             setCountry(sp.getInt(FMCONFIG_COUNTRY, REGIONAL_BAND_NORTH_AMERICA));
     
         }
     
         /* Last list the user was navigating */io

保存頻率ast

public void Save()模板

 

設置默認的地區List

public static void SetDefaults()方法

 

設置調整頻率

public static void setTunedFrequency(intfrequency)

 

獲取調整頻率

public static int getTunedFrequency()

 

獲取下一個頻率

public static int getPrevTuneFrequency(intfrequency)

 

    / * *
     
    * @param mFMConfiguration mFMConfiguration設置
     
    * /
     
    public static void setFMConfiguration(FmConfig mFMConfig)
     
     
     
    /**
        *@return the mFMConfiguration
       */
     
      public static FmConfig getFMConfiguration() {
     
         return mFMConfiguration;
     
       }

設置fm播放的頻率範圍

public static void setRadioBand(int band)

 

獲取fm頻率範圍限制

public static int getRadioBand()

 

獲取間隔

public static int getChSpacing()

設置遠程數據服務

public static void setRdsStd(int std)

mFMConfiguration.setRdsStd(std);

 

獲取遠程數據服務

public static int getRdsStd()

mFMConfiguration.getRdsStd();

 

設置國家地區

 public static void setCountry(intnCountryCode)

獲取國家地區

 public static int getCountry()

 

設置聲音輸出模板

setAudioOutputMode
 

設置錄音是否持續

public static void setRecordDuration(intdurationIndex)

相關文章
相關標籤/搜索