我今天想分享的是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)