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); } }