47 lines
1.5 KiB
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);
|
|
}
|
|
}
|