我所有的代碼是在計時器,它狄每2秒Android手機上保持沉默的時間比較
我有3周不同的時間
1)從時間選擇器(sTime
)。
2)獲取我手機的當前時間(cTime
)。
3)到期時間 - (用於創建時間選擇器的時間和到期時間之間的範圍)(rTime
)。
我想我的無聲手機時cTime
等於或sTime
後回頭我的手機輪廓正常時cTime
等於或之後rTime
,但我不能做到這一點。我已經完成了我的編碼,我認爲邏輯很好,但爲什麼它不工作。請在這方面幫助我。
這裏是我的代碼
AudioManager am;
am = (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE);
try {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String savedTime = sHour + ":" + sMin;
Date sTime = sdf.parse(savedTime);
Calendar c = Calendar.getInstance();
int currentHour = c.get(Calendar.HOUR);
int currentMin = c.get(Calendar.MINUTE);
String currentTime = currentHour + ":" + currentMin;
Date cTime = sdf.parse(currentTime);
int rangeHour = sHour;
int rangeMin = sMin + 1;
Date rTime = sdf.parse(rangeHour + ":" + rangeMin);
if (cTime.after(sTime)) {
am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
Log.e("res", "Silent Mode Timing");
}
if (cTime.after(rTime)) {
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
Log.e("res", "Normal Mode Timing");
}
} catch (Exception ex) {
Log.e("res", ex.toString());
}
我沒有看到這部分代碼的問題。請顯示計時器滴答代碼? – Konstantin
上面的代碼是在名爲timeCheck(int sHour,int sMin) 的函數裏面,我剛剛調用了timeCheck()函數。定時器工作完美,因爲我通過在logcat中顯示值來測試它。但它不會改變電話的狀態,即靜音和正常模式。 – Imran
嘗試更改am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); am.setRingerMode(AudioManager.RINGER_MODE_SILENT);並將 添加到清單 –
Konstantin