diff --git a/timestamp/build.properties b/timestamp/build.properties
index ef09f392..8e0fe5f7 100644
--- a/timestamp/build.properties
+++ b/timestamp/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Wed May 07 15:07:02 HKT 2025
-stageCount=2
+#Mon Jul 28 11:36:51 HKT 2025
+stageCount=4
libraryProject=
baseVersion=15.1
-publishVersion=15.1.1
+publishVersion=15.1.3
buildCount=0
-baseBetaVersion=15.1.2
+baseBetaVersion=15.1.4
diff --git a/timestamp/src/main/AndroidManifest.xml b/timestamp/src/main/AndroidManifest.xml
index fe353647..b1705ab9 100644
--- a/timestamp/src/main/AndroidManifest.xml
+++ b/timestamp/src/main/AndroidManifest.xml
@@ -3,6 +3,9 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="cc.winboll.studio.timestamp">
+
+
+
@@ -45,6 +48,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java
index 2236bb22..efec018a 100644
--- a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java
+++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java
@@ -5,6 +5,7 @@ import android.view.View;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libappbase.LogUtils;
@@ -12,6 +13,8 @@ import cc.winboll.studio.libappbase.LogView;
import cc.winboll.studio.timestamp.MainService;
import cc.winboll.studio.timestamp.R;
import cc.winboll.studio.timestamp.utils.AppConfigsUtil;
+import cc.winboll.studio.timestamp.utils.ClipboardUtil;
+import cc.winboll.studio.timestamp.utils.TimeStampUtil;
import com.hjq.toast.ToastUtils;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -97,4 +100,22 @@ public class MainActivity extends AppCompatActivity {
}
return false;
}
+
+ public void onTimeStamp(View view) {
+ // 在这里编写按钮点击后要执行的代码
+ TimeStampUtil.getInstance(this).genTimeStamp();
+ String formattedDateTime = TimeStampUtil.getInstance(this).getTimeStampCopyString();
+ ClipboardUtil.copyTextToClipboard(this, formattedDateTime);
+
+ // 更新时间戳文本框显示内容
+ EditText etTimeStamp = findViewById(R.id.et_timestamp);
+ etTimeStamp.setText(formattedDateTime);
+
+ // 输出一个提示音
+ TimeStampUtil.getInstance(this).playNotifyMusic(this);
+
+ // 比如显示一个 Toast
+ Toast.makeText(this, "时间戳:\n" + TimeStampUtil.getInstance(this).getTimeStampCopyString() + "\n已拷贝到剪贴板。", Toast.LENGTH_SHORT).show();
+ MainService.updateCopiedTimeStamp();
+ }
}
diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/MainReceiver.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/MainReceiver.java
new file mode 100644
index 00000000..05f0811f
--- /dev/null
+++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/MainReceiver.java
@@ -0,0 +1,40 @@
+package cc.winboll.studio.timestamp.receivers;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import cc.winboll.studio.libappbase.LogUtils;
+import cc.winboll.studio.timestamp.MainService;
+import cc.winboll.studio.timestamp.models.AppConfigsModel;
+import cc.winboll.studio.timestamp.utils.AppConfigsUtil;
+
+/**
+ * @Author ZhanGSKen&豆包大模型
+ * @Date 2025/07/28 11:15
+ * @Describe MainReceiver
+ */
+public class MainReceiver extends BroadcastReceiver {
+
+ public static final String TAG = "MainReceiver";
+
+ static final String ACTION_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
+
+ AppConfigsUtil mAppConfigsUtil;
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String szAction = intent.getAction();
+ if (szAction.equals(ACTION_BOOT_COMPLETED)) {
+ AppConfigsModel appConfigs = AppConfigsUtil.getInstance(context).loadAppConfigs();
+ boolean isEnable = appConfigs.isEnableService();
+ AppConfigsUtil.getInstance(context).saveAppConfigs();
+
+ Intent intentMainService = new Intent(context, MainService.class);
+ if (isEnable) {
+ context.startService(intentMainService);
+ }
+ LogUtils.i(TAG, "System Boot And Start ManagerService Completed!");
+ }
+ }
+
+}
diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java
index 0499ca27..b4a5fb33 100644
--- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java
+++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java
@@ -130,16 +130,10 @@ public class NotificationHelper {
mForegroundNotification.bigContentView = remoteViews;
service.startForeground(ID_MSG_SERVICE, mForegroundNotification);
-
- // 播放默认短信铃声
- Uri defaultSmsRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
- AudioPlayerUriUtil.playAudio(service, defaultSmsRingtoneUri);
-
- // 播放应用铃声
- // 获取MP3文件的Uri
- Uri soundUri = Uri.parse("android.resource://" + service.getPackageName() + "/" + R.raw.diweiyi);
- AudioPlayerUriUtil.playAudio(service, soundUri);
+
+ TimeStampUtil.getInstance(service).playNotifyMusic(service);
}
+
diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java
index 9a3af964..26c273d4 100644
--- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java
+++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java
@@ -6,6 +6,8 @@ package cc.winboll.studio.timestamp.utils;
* @Describe TimeStampUtil
*/
import android.content.Context;
+import android.net.Uri;
+import cc.winboll.studio.timestamp.R;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -55,4 +57,19 @@ public class TimeStampUtil {
String formattedDateTime = ldt.format(formatter);
return formattedDateTime;
}
+
+
+ //
+ // 播放时间戳确定时的提示音乐
+ //
+ public static void playNotifyMusic(Context context) {
+ // 播放默认短信铃声
+ //Uri defaultSmsRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
+ //AudioPlayerUriUtil.playAudio(context, defaultSmsRingtoneUri);
+
+ // 播放应用铃声
+ // 获取MP3文件的Uri
+ Uri soundUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.diweiyi);
+ AudioPlayerUriUtil.playAudio(context, soundUri);
+ }
}
diff --git a/timestamp/src/main/res/layout/activity_main.xml b/timestamp/src/main/res/layout/activity_main.xml
index 225a1236..34a11c1a 100644
--- a/timestamp/src/main/res/layout/activity_main.xml
+++ b/timestamp/src/main/res/layout/activity_main.xml
@@ -1,144 +1,180 @@
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+