当前位置: 首页 > article >正文

RK Android14 在计算器内输入特定字符跳转到其他应用

文章目录

  • 需求
  • 解决

需求

在计算器内输入特定字符,跳转到其他应用

解决

路径:/packages/apps/ExactCalculator/src/com/android/calculator2/Calculator.java

diff --git a/packages/apps/ExactCalculator/src/com/android/calculator2/Calculator.java b/packages/apps/ExactCalculator/src/com/android/calculator2/Calculator.java
index 60ce3da..bc5b993 100644 (file)
--- a/packages/apps/ExactCalculator/src/com/android/calculator2/Calculator.java
+++ b/packages/apps/ExactCalculator/src/com/android/calculator2/Calculator.java
@@ -71,6 +71,13 @@ import android.view.animation.AccelerateDecelerateInterpolator;
 import android.widget.HorizontalScrollView;
 import android.widget.TextView;
 import android.widget.Toolbar;
+import android.widget.Toast;
+
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.ComponentName;
+import java.util.List;
+import android.content.Context;
 
 import com.android.calculator2.CalculatorFormula.OnTextSizeChangeListener;
 
@@ -232,6 +239,10 @@ public class Calculator extends Activity
 
         @Override
         public void onTextChanged(CharSequence charSequence, int start, int count, int after) {
+                       if (charSequence.toString().equals("****")) {//特定字符
+                startActivity(getAppOpenIntentByPackageName(Calculator.this, "com.应用的包名"));
+                onClear();
+            }
         }
 
         @Override
@@ -243,6 +254,30 @@ public class Calculator extends Activity
             }
         }
     };
+       
+       public Intent getAppOpenIntentByPackageName(Context context, String packageName) {
+         String mainAct = null;
+         PackageManager pkgMag = context.getPackageManager();
+         Intent intent = new Intent(Intent.ACTION_MAIN);
+         intent.addCategory(Intent.CATEGORY_LAUNCHER);
+         intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
+
+         List<ResolveInfo> list = pkgMag.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES);
+         for (int i = 0; i < list.size(); i++) {
+             ResolveInfo info = list.get(i);
+             if (info.activityInfo.packageName.equals(packageName)) {
+                 mainAct = info.activityInfo.name;
+                 break;
+             }
+         }
+
+         if (TextUtils.isEmpty(mainAct)) {
+             return null;
+         }
+
+         intent.setComponent(new ComponentName(packageName, mainAct));
+         return intent;
+    }

http://www.kler.cn/a/579590.html

相关文章:

  • 文件上传漏洞测试
  • Java 大视界 -- Java 大数据在智慧交通信号灯智能控制中的应用(116)
  • TCP/IP 5层协议簇:网络层(ICMP协议)
  • 论文阅读-秦汉时期北方边疆组织的空间互动模式与直道的定位(中国)
  • 自学微信小程序的第十二天
  • lodash手写源码-cloneDeep,debounce,throttle
  • 【并发】 synchronized 关键字详解
  • 实现一键不同环境迁移ES模板
  • Mysql配置文件My.cnf(my.ini)配置参数说明
  • 如何判断住宅IP与机房IP的方法
  • 双击PPT文件界面灰色不可用,需要再次打开该PPT文件才能正常打开
  • vue基本功
  • ubuntu22.04安装RAGFlow配合DeepSeek搭建本地知识库
  • 论文阅读_角色扮演综述从人格化到个性化
  • leetcode 2070. 每一个查询的最大美丽值 中等
  • 物联网中如何解决数据安全的问题
  • 【网络安全 | 漏洞挖掘】通过JWT的IDOR实现账户接管
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_modules
  • 清华北大推出的 DeepSeek 教程(附 PDF 下载链接)
  • MySql的in和join对比谁更高效