应用模式切换功能完成。
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Wed Nov 12 23:59:20 GMT 2025
|
||||
#Thu Nov 13 00:41:27 GMT 2025
|
||||
stageCount=0
|
||||
libraryProject=
|
||||
baseVersion=15.11
|
||||
publishVersion=15.11.0
|
||||
buildCount=6
|
||||
buildCount=14
|
||||
baseBetaVersion=15.11.1
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">悟空笔记#</string>
|
||||
<string name="appplus_name">老君到說#</string>
|
||||
</resources>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<resources>
|
||||
|
||||
<string name="app_name">Positions</string>
|
||||
<string name="appplus_name">PositionsPlus+</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
android:shortcutLongLabel="@string/open_appplus"
|
||||
android:shortcutDisabledMessage="@string/appplus_open_disabled">
|
||||
<intent
|
||||
android:action="cc.winboll.studio.positions.MainActivity"
|
||||
android:action="cc.winboll.studio.positions.MainActivity.ACTION_OPEN_APPPLUS"
|
||||
android:targetPackage="cc.winboll.studio.positions.beta"
|
||||
android:targetClass="cc.winboll.studio.positions.MainActivity"
|
||||
android:data="open_appplus" />
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
android:shortcutLongLabel="@string/close_appplus"
|
||||
android:shortcutDisabledMessage="@string/appplus_close_disabled">
|
||||
<intent
|
||||
android:action="cc.winboll.studio.positions.PlusActivity.ACTION_CLOSE_APPPLUS"
|
||||
android:action="cc.winboll.studio.positions.MainActivity.ACTION_CLOSE_APPPLUS"
|
||||
android:targetPackage="cc.winboll.studio.positions.beta"
|
||||
android:targetClass="cc.winboll.studio.positions.PlusActivity"
|
||||
android:targetClass="cc.winboll.studio.positions.MainActivity"
|
||||
android:data="close_appplus" />
|
||||
|
||||
<categories android:name="android.shortcut.conversation" />
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
android:targetActivity=".MainActivity"
|
||||
android:exported="true"
|
||||
android:label="@string/appplus_name"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:icon="@drawable/ic_positions_plus"
|
||||
android:enabled="false">
|
||||
|
||||
<intent-filter>
|
||||
|
||||
@@ -22,7 +22,7 @@ import cc.winboll.studio.positions.activities.LocationActivity;
|
||||
import cc.winboll.studio.positions.activities.WinBoLLActivity;
|
||||
import cc.winboll.studio.positions.utils.AppConfigsUtil;
|
||||
import cc.winboll.studio.positions.utils.ServiceUtil;
|
||||
import cc.winboll.studio.positions.utils.AppIconUtils;
|
||||
import cc.winboll.studio.positions.utils.APPPlusUtils;
|
||||
|
||||
/**
|
||||
* 主页面:仅负责
|
||||
@@ -32,6 +32,10 @@ import cc.winboll.studio.positions.utils.AppIconUtils;
|
||||
*/
|
||||
public class MainActivity extends WinBoLLActivity implements IWinBoLLActivity {
|
||||
public static final String TAG = "MainActivity";
|
||||
public static final String COMPONENT_WUKONG = "cc.winboll.studio.positions.MainActivityWukong";
|
||||
public static final String COMPONENT_LAOJUN = "cc.winboll.studio.positions.MainActivityLaojun";
|
||||
public static final String ACTION_OPEN_APPPLUS = "cc.winboll.studio.positions.MainActivity.ACTION_OPEN_APPPLUS";
|
||||
public static final String ACTION_CLOSE_APPPLUS = "cc.winboll.studio.positions.MainActivity.ACTION_CLOSE_APPPLUS";
|
||||
// 权限请求码(建议定义为类常量,避免魔法值)
|
||||
private static final int REQUEST_LOCATION_PERMISSIONS = 1001;
|
||||
private static final int REQUEST_BACKGROUND_LOCATION_PERMISSION = 1002;
|
||||
@@ -106,9 +110,15 @@ public class MainActivity extends WinBoLLActivity implements IWinBoLLActivity {
|
||||
*/
|
||||
private void handleSwitchRequest() {
|
||||
Intent intent = getIntent();
|
||||
if (intent != null && "open_app_plus".equals(intent.getDataString())) {
|
||||
if (intent != null && "open_appplus".equals(intent.getDataString())) {
|
||||
ToastUtils.show("已添加" + getString(R.string.app_name) + "附加组件");
|
||||
AppIconUtils.addPlusIcon(this);
|
||||
APPPlusUtils.openAPPPlus(this);
|
||||
moveTaskToBack(true);
|
||||
}
|
||||
if (intent != null && "close_appplus".equals(intent.getDataString())) {
|
||||
ToastUtils.show("已移除" + getString(R.string.app_name) + "附加组件");
|
||||
APPPlusUtils.closeAPPPlus(this);
|
||||
moveTaskToBack(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
package cc.winboll.studio.positions.activities;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import cc.winboll.studio.libappbase.ToastUtils;
|
||||
import cc.winboll.studio.positions.MainActivity;
|
||||
import cc.winboll.studio.positions.R;
|
||||
import cc.winboll.studio.positions.utils.AppIconUtils;
|
||||
|
||||
/**
|
||||
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
|
||||
* @Date 2025/11/10 18:17
|
||||
*/
|
||||
public class PlusActivity extends MainActivity {
|
||||
|
||||
public static final String TAG = "PlusActivity";
|
||||
public static final String ACTION_HIDE_APP_PLUS = "cc.winboll.studio.positions.PlusActivity.ACTION_HIDE_APP_PLUS";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
handleSwitchRequest();
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理应用图标快捷菜单的请求
|
||||
*/
|
||||
private void handleSwitchRequest() {
|
||||
Intent intent = getIntent();
|
||||
if (intent != null && "hide_app_plus".equals(intent.getDataString())) {
|
||||
ToastUtils.show("已移除" + getString(R.string.app_name) + "附加组件");
|
||||
AppIconUtils.addPlusIcon(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,14 +10,12 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
import cc.winboll.studio.libappbase.LogUtils;
|
||||
import cc.winboll.studio.positions.R;
|
||||
import cc.winboll.studio.positions.activities.PlusActivity;
|
||||
import cc.winboll.studio.positions.MainActivity;
|
||||
|
||||
public class AppIconUtils {
|
||||
public static final String TAG = "AppIconUtils";
|
||||
public class APPPlusUtils {
|
||||
public static final String TAG = "APPPlusUtils";
|
||||
|
||||
// 快捷方式配置(名称+图标,需与实际资源匹配)
|
||||
// private static final String PLUS_SHORTCUT_NAME = "位置服务-Laojun";
|
||||
@@ -26,7 +24,7 @@ public class AppIconUtils {
|
||||
/**
|
||||
* 添加Plus组件与图标
|
||||
*/
|
||||
public static boolean addPlusIcon(Context context) {
|
||||
public static boolean openAPPPlus(Context context) {
|
||||
if (context == null) {
|
||||
LogUtils.d(TAG, "切换失败:上下文为空");
|
||||
Toast.makeText(context, "图标切换失败", Toast.LENGTH_SHORT).show();
|
||||
@@ -34,10 +32,12 @@ public class AppIconUtils {
|
||||
}
|
||||
|
||||
PackageManager pm = context.getPackageManager();
|
||||
ComponentName plusComponent = new ComponentName(context, PlusActivity.ACTION_HIDE_APP_PLUS);
|
||||
ComponentName plusComponentLaojun = new ComponentName(context, MainActivity.COMPONENT_LAOJUN);
|
||||
ComponentName plusComponentWuKong = new ComponentName(context, MainActivity.COMPONENT_WUKONG);
|
||||
|
||||
try {
|
||||
enableComponent(pm, plusComponent);
|
||||
disableComponent(pm, plusComponentWuKong);
|
||||
enableComponent(pm, plusComponentLaojun);
|
||||
|
||||
// 2. 创建 Laojun 组件对应的快捷方式(自动去重)
|
||||
// boolean shortcutCreated = createComponentShortcut(context, plusComponent, PLUS_SHORTCUT_NAME, PLUS_SHORTCUT_ICON);
|
||||
@@ -62,12 +62,12 @@ public class AppIconUtils {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 移除Plus组件
|
||||
*/
|
||||
public static boolean removePlusIcon(Context context) {
|
||||
public static boolean closeAPPPlus(Context context) {
|
||||
if (context == null) {
|
||||
LogUtils.d(TAG, "切换失败:上下文为空");
|
||||
Toast.makeText(context, "图标切换失败", Toast.LENGTH_SHORT).show();
|
||||
@@ -75,15 +75,13 @@ public class AppIconUtils {
|
||||
}
|
||||
|
||||
PackageManager pm = context.getPackageManager();
|
||||
ComponentName plusComponent = new ComponentName(context, PlusActivity.ACTION_HIDE_APP_PLUS);
|
||||
ComponentName plusComponentLaojun = new ComponentName(context, MainActivity.COMPONENT_LAOJUN);
|
||||
ComponentName plusComponentWuKong = new ComponentName(context, MainActivity.COMPONENT_WUKONG);
|
||||
|
||||
disableComponent(pm, plusComponentLaojun);
|
||||
enableComponent(pm, plusComponentWuKong);
|
||||
|
||||
try {
|
||||
disableComponent(pm, plusComponent);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">悟空笔记</string>
|
||||
<string name="appplus_name">老君到說</string>
|
||||
<string name="open_appplus">开疆扩土</string>
|
||||
<string name="close_appplus">返璞归真</string>
|
||||
<string name="appplus_open_disabled">余力不足</string>
|
||||
<string name="appplus_close_disabled">辎重难返</string>
|
||||
</resources>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
android:shortcutLongLabel="@string/open_appplus"
|
||||
android:shortcutDisabledMessage="@string/appplus_open_disabled">
|
||||
<intent
|
||||
android:action="cc.winboll.studio.positions.MainActivity"
|
||||
android:action="cc.winboll.studio.positions.MainActivity.ACTION_OPEN_APPPLUS"
|
||||
android:targetPackage="cc.winboll.studio.positions"
|
||||
android:targetClass="cc.winboll.studio.positions.MainActivity"
|
||||
android:data="open_appplus" />
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
android:shortcutLongLabel="@string/close_appplus"
|
||||
android:shortcutDisabledMessage="@string/appplus_close_disabled">
|
||||
<intent
|
||||
android:action="cc.winboll.studio.positions.PlusActivity.ACTION_HIDE_APP_PLUS"
|
||||
android:action="cc.winboll.studio.positions.MainActivity.ACTIO_CLOSE_APPPLUS"
|
||||
android:targetPackage="cc.winboll.studio.positions"
|
||||
android:targetClass="cc.winboll.studio.positions.PlusActivity"
|
||||
android:targetClass="cc.winboll.studio.positions.MainActivity"
|
||||
android:data="close_appplus" />
|
||||
|
||||
<categories android:name="android.shortcut.conversation" />
|
||||
|
||||
Reference in New Issue
Block a user