gpt4 book ai didi

安卓手机静音时间对比

转载 作者:行者123 更新时间:2023-11-30 01:19:50 24 4
gpt4 key购买 nike

我所有的代码都在计时器中,每 2 秒 tik 一次

我有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());
}

最佳答案

好的,我有一个建议。 Date 类的“after”方法以毫秒为单位比较两个长值。当您获得当前时间毫秒值时,它计算为当前年份 + 当前月份 + 当前日期和时间等(或类似的东西)。当您获得 savedTime 的毫秒数时,它计算不正确,因为您没有指定完整的日期(年份等)。我的意思是当它在 Date.after 方法中以长毫秒值转换时,你的 startTime 不正确。尝试更改您的算法以使用长时间戳,而不是日期。例如当前时间是 System.currentTimeMillis()。我希望它有所帮助。对不起我的英语

关于安卓手机静音时间对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37270054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com