添加拷贝时间戳到剪贴板功能

This commit is contained in:
ZhanGSKen 2025-05-06 11:07:28 +08:00
parent 551b424960
commit 9c4c1320aa
4 changed files with 59 additions and 5 deletions

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Tue May 06 02:45:43 GMT 2025
#Tue May 06 03:04:55 GMT 2025
stageCount=0
libraryProject=
baseVersion=15.0
publishVersion=15.0.0
buildCount=108
buildCount=117
baseBetaVersion=15.0.1

View File

@ -5,6 +5,8 @@
<!-- 运行前台服务 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.READ_CLIPBOARD" />
<uses-permission android:name="android.permission.WRITE_CLIPBOARD" />
<application
android:allowBackup="true"

View File

@ -10,6 +10,12 @@ import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.timestamp.utils.AppConfigsUtil;
import cc.winboll.studio.timestamp.utils.ClipboardUtil;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class ButtonClickReceiver extends BroadcastReceiver {
@ -20,11 +26,20 @@ public class ButtonClickReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
LogUtils.d(TAG, "onReceive");
//if (intent.getAction().equals(BUTTON_COPYTIMESTAMP_ACTION)) {
if (intent.getAction().equals(BUTTON_COPYTIMESTAMP_ACTION)) {
// 在这里编写按钮点击后要执行的代码
long currentMillis = System.currentTimeMillis();
Instant instant = Instant.ofEpochMilli(currentMillis);
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
String szTimeStampFormatString = AppConfigsUtil.getInstance(context).getAppConfigsModel().getTimeStampCopyFormatString();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString);
String formattedDateTime = ldt.format(formatter);
ClipboardUtil.copyTextToClipboard(context, formattedDateTime);
// 比如显示一个Toast
Toast.makeText(context, "按钮被点击了", Toast.LENGTH_SHORT).show();
//}
Toast.makeText(context, formattedDateTime + " 已复制", Toast.LENGTH_SHORT).show();
}
}
}

View File

@ -0,0 +1,37 @@
package cc.winboll.studio.timestamp.utils;
/**
* @Author ZhanGSKen
* @Date 2025/05/06 10:53
* @Describe 剪贴板工具集
*/
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Handler;
public class ClipboardUtil {
public static final String TAG = "ClipboardUtil";
private static final long COPY_DELAY = 500; // 延迟 500 毫秒
private static Handler handler = new Handler();
/**
* 拷贝文本到剪贴板
* @param context 上下文
* @param text 要拷贝的文本
*/
public static void copyTextToClipboard(final Context context, final String text) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboardManager != null) {
ClipData clipData = ClipData.newPlainText("label", text);
clipboardManager.setPrimaryClip(clipData);
}
}
}, COPY_DELAY);
}
}