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