Files
ElderlyDialer/app/src/main/java/com/ttstd/dialer/receiver/HourlyChimeReceiver.java

47 lines
1.5 KiB
Java

package com.ttstd.dialer.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.tencent.mmkv.MMKV;
import com.ttstd.dialer.config.CommonConfig;
import com.ttstd.dialer.tts.sherpa_onnx.SherpaOnnxTtsManager;
import com.ttstd.dialer.utils.Logger;
import java.util.Calendar;
public class HourlyChimeReceiver extends BroadcastReceiver {
private static final String TAG = "HourlyChimeReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Logger.d(TAG, "收到广播: " + intent.getAction());
MMKV mmkv = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
boolean enabled = mmkv.decodeInt(CommonConfig.HOURLY_CHIME_ENABLE, 0) == 1;
if (!enabled) {
Logger.d(TAG, "整点报时未开启,跳过");
return;
}
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Logger.d(TAG, "开机完成,重新调度整点报时");
HourlyChimeManager.scheduleNextChime(context);
return;
}
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
String text = "现在是北京时间 " + hour + " 点整";
Logger.d(TAG, "开始播报: " + text);
SherpaOnnxTtsManager.getInstance().init(context);
SherpaOnnxTtsManager.getInstance().speak(text);
// 安排下一个小时的报时
HourlyChimeManager.scheduleNextChime(context);
}
}