Android FM模块学习之四源码解析(四)

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

FmSharedPreferences(Context context)在构造方法中加载Load()方法,

    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;
          }
       }

初始化取出sp一些数据
 

根据系统初始化地区设置当地频率

    /*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 */

保存频率

public void Save()

 

设置默认的地区

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)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值