From 9dcbaa0d75b5435152a8d827dd675995016e4a53 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Thu, 24 Jul 2025 09:00:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A1=8C=E9=9D=A2=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E6=96=B9=E5=BC=8F=E5=88=9B=E5=BB=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- numtable/build.properties | 4 +- numtable/src/main/AndroidManifest.xml | 9 ++- .../winboll/studio/numtable/MainActivity.java | 68 ++++++++++++++++++- .../src/main/res/layout/activity_main.xml | 19 ++++-- 4 files changed, 88 insertions(+), 12 deletions(-) diff --git a/numtable/build.properties b/numtable/build.properties index 74c8093..7a48d64 100644 --- a/numtable/build.properties +++ b/numtable/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Jun 08 21:21:11 HKT 2025 +#Thu Jul 24 00:58:40 GMT 2025 stageCount=1 libraryProject= baseVersion=15.1 publishVersion=15.1.0 -buildCount=0 +buildCount=8 baseBetaVersion=15.1.1 diff --git a/numtable/src/main/AndroidManifest.xml b/numtable/src/main/AndroidManifest.xml index 284eb50..d882593 100644 --- a/numtable/src/main/AndroidManifest.xml +++ b/numtable/src/main/AndroidManifest.xml @@ -3,6 +3,11 @@ xmlns:android="http://schemas.android.com/apk/res/android" package="cc.winboll.studio.numtable"> + + + + + - - - + diff --git a/numtable/src/main/java/cc/winboll/studio/numtable/MainActivity.java b/numtable/src/main/java/cc/winboll/studio/numtable/MainActivity.java index b16fbca..8f4f803 100644 --- a/numtable/src/main/java/cc/winboll/studio/numtable/MainActivity.java +++ b/numtable/src/main/java/cc/winboll/studio/numtable/MainActivity.java @@ -1,9 +1,17 @@ package cc.winboll.studio.numtable; +import android.content.Intent; +import android.content.pm.ShortcutInfo; +import android.content.pm.ShortcutManager; +import android.graphics.drawable.Icon; +import android.os.Build; import android.os.Bundle; +import android.view.View; +import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import cc.winboll.studio.libappbase.LogView; +import cc.winboll.studio.numtable.R; import com.hjq.toast.ToastUtils; public class MainActivity extends AppCompatActivity { @@ -19,10 +27,66 @@ public class MainActivity extends AppCompatActivity { setSupportActionBar(toolbar); mLogView = findViewById(R.id.logview); - - ToastUtils.show("onCreate"); + + // 初始化创建快捷方式按钮 + Button btnCreateShortcut = findViewById(R.id.btn_create_shortcut); + btnCreateShortcut.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + createDesktopShortcut(); + } + }); } + /** + * 创建桌面快捷方式 + */ + private void createDesktopShortcut() { + // 1. 创建启动目标Activity的Intent(通常是你的主Activity) + Intent targetIntent = new Intent(this, MainActivity.class); // 替换为你的主Activity + targetIntent.setAction(Intent.ACTION_MAIN); + targetIntent.addCategory(Intent.CATEGORY_LAUNCHER); + targetIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); + + // 2. 创建快捷方式的Intent + Intent shortcutIntent = new Intent(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + // Android 8.0及以上:使用ShortcutManager + ShortcutManager shortcutManager = getSystemService(ShortcutManager.class); + if (shortcutManager.isRequestPinShortcutSupported()) { + // 创建快捷方式信息 + ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, "unique_shortcut_id") // 唯一ID + .setShortLabel("应用快捷方式") // 短标签(显示在桌面) + .setLongLabel("我的应用快捷方式") // 长标签(长按显示) + .setIcon(Icon.createWithResource(this, R.mipmap.ic_launcher)) // 图标 + .setIntent(targetIntent) + .build(); + + // 发送创建请求 + shortcutManager.requestPinShortcut(shortcutInfo, null); + ToastUtils.show("已请求创建快捷方式"); + } else { + ToastUtils.show("当前设备不支持创建快捷方式"); + } + } else { + // Android 7.1及以下:使用旧版广播方式 + shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent); + shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "应用快捷方式"); // 快捷方式名称 + // 设置图标(使用应用图标) + shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher)); + // 标记为创建快捷方式 + shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + // 防止重复创建 + shortcutIntent.putExtra("duplicate", false); + + // 发送广播创建快捷方式 + sendBroadcast(shortcutIntent); + ToastUtils.show("快捷方式已创建"); + } + } + + @Override protected void onResume() { super.onResume(); diff --git a/numtable/src/main/res/layout/activity_main.xml b/numtable/src/main/res/layout/activity_main.xml index 1c21368..1738a7c 100644 --- a/numtable/src/main/res/layout/activity_main.xml +++ b/numtable/src/main/res/layout/activity_main.xml @@ -24,13 +24,22 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1.0" - android:gravity="center_vertical|center_horizontal"> + android:gravity="bottom"> - + android:gravity="right"> + +