Android FM模块学习之四源码解析(四)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android FM模块学习之四源码解析(四),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3521字,纯文字阅读大概需要6分钟。
内容图文
我今天想分享的是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 getNextTuneFrequency(intfrequency)
获取上一个频率
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)
原文:http://blog.csdn.net/tfslovexizi/article/details/42080839
内容总结
以上是互联网集市为您收集整理的Android FM模块学习之四源码解析(四)全部内容,希望文章能够帮你解决Android FM模块学习之四源码解析(四)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。