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

Android 隐藏桌面应用,指定应用显示;暗码输入显示所有应用,以及暗码方式触发

/vendor/google/apps/GmsSampleIntegration/res_dhs_go_2gb/xml/partner_default_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2017 Google Inc. All Rights Reserved. -->
<favorites>
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
<!-- Dialer Messaging Calendar Contacts Camera
<favorite container="-101" screen="0" x="0" y="0" packageName="com.android.dialer" className="com.android.dialer.main.impl.MainActivity"/>
<favorite container="-101" screen="1" x="1" y="0" packageName="com.android.mms" className="com.android.mms.ui.BootActivity"/>
<favorite container="-101" screen="2" x="2" y="0" packageName="com.android.chrome" className="com.google.android.apps.chrome.Main"/>
<favorite container="-101" screen="3" x="3" y="0" packageName="com.mediatek.camera" className="com.mediatek.camera.CameraLauncher"/>
-->

<!-- In Launcher3, workspaces extend infinitely to the right, incrementing from zero -->
<!-- Google folder -->
<!-- Assistant Go, Gallery, Gmail, Google, Maps, YouTube, Meet, YT Music, Drive, Google TV, Find Device
<folder title="@string/google_folder_title" screen="0" x="0" y="3">
<favorite packageName="com.google.android.apps.assistant" className="com.google.android.apps.assistant.go.MainActivity"/>
<favorite packageName="com.google.android.apps.photosgo" className="com.google.android.apps.photosgo.home.HomeActivity"/>
<favorite packageName="com.google.android.gm" className="com.google.android.gm.ConversationListActivityGmail"/>
<favorite packageName="com.google.android.apps.searchlite" className="com.google.android.apps.searchlite.ui.SearchActivity"/>
<favorite packageName="com.google.android.apps.maps" className="com.google.android.maps.MapsActivity"/>
<favorite packageName="com.google.android.youtube" className="com.google.android.youtube.app.honeycomb.Shell$HomeActivity"/>
<favorite packageName="com.google.android.apps.tachyon" className="com.google.android.apps.tachyon.MainActivity"/>
<favorite packageName="com.google.android.apps.youtube.music" className="com.google.android.apps.youtube.music.activities.MusicActivity"/>
<favorite packageName="com.google.android.apps.docs" className="com.google.android.apps.docs.app.NewMainProxyActivity"/>
<favorite packageName="com.google.android.videos" className="com.google.android.videos.GoogleTvEntryPoint"/>
<favorite packageName="com.google.android.apps.adm" className="com.google.android.apps.adm.activities.MainActivity"/>
</folder>
<favorite screen="0" x="3" y="3" packageName="com.android.vending" className="com.android.vending.AssetBrowserActivity"/>
-->

<favorite screen="0" x="0" y="2" packageName="com.easytalk" className="com.cellls.awesome.android.gui.LoginActivity"/>
<!--
<favorite screen="0" x="1" y="2" packageName="com.whatsapp" className="com.whatsapp.Main"/>
-->

<favorite screen="0" x="2" y="2" packageName="com.waze" className="com.waze.FreeMapAppActivity"/>
</favorites>

/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java

static boolean handleSecretCode(Context context, String input) {
//*/ freeme.chenming, 20170214. Freeme handleSecretCode
if (com.freeme.telephony.FreemeSpecialCharSequenceMgr.handleSecretCode(context, input)) {
return true;
}
//*/

//*/ tyd,lxd, add reload launcher show
if ("112358132134".equals(input)) {
//*/tyd,add
android.provider.Settings.System.putInt(context.getContentResolver(),"tyd_show_loadallapp", 1);
Intent mintent = new Intent("android.intent.action.reloadworkspace");
context.sendBroadcast(mintent);
android.widget.Toast.makeText(context,"Show All Apps",Toast.LENGTH_LONG).show();
//*/
return true;
}
//*/

vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java

private List<LauncherActivityInfo> loadAllApps() {
final List<UserHandle> profiles = mUserCache.getUserProfiles();
List<LauncherActivityInfo> allActivityList = new ArrayList<>();
// Clear the list of apps
mBgAllAppsList.clear();

List<IconRequestInfo<AppInfo>> iconRequestInfos = new ArrayList<>();
for (UserHandle user : profiles) {
// Query for the set of apps
final List<LauncherActivityInfo> apps = mLauncherApps.getActivityList(null, user);
// Fail if we don't have any apps
// TODO: Fix this. Only fail for the current user.
if (apps == null || apps.isEmpty()) {
return allActivityList;
}
boolean quietMode = mUserManagerState.isUserQuiet(user);
// Create the ApplicationInfos
for (int i = 0; i < apps.size(); i++) {
LauncherActivityInfo app = apps.get(i);
//*/TYD.add
if(app.getComponentName().getPackageName().equals("com.android.inputmethod.latin") ||
app.getComponentName().getPackageName().equals("com.iflytek.inputmethod.gionee")
|| app.getComponentName().getPackageName().equals("com.android.fmradio")
//|| app.getComponentName().getPackageName().equals("com.android.stk")
) {
continue;
}
//*/
//*/tyd,lxd,hide and show all apps but some app show
if(android.provider.Settings.System.getInt(mApp.getContext().getContentResolver(),"tyd_show_loadallapp", 0) == 0){
if(app.getComponentName().getPackageName().equals("com.android.settings") ||
app.getComponentName().getPackageName().equals("com.android.calendar")
|| app.getComponentName().getPackageName().equals("com.android.deskclock")
|| app.getComponentName().getPackageName().equals("com.android.mms")
|| app.getComponentName().getPackageName().equals("com.mediatek.camera")
|| app.getComponentName().getPackageName().equals("com.android.calculator2")
|| app.getComponentName().getPackageName().equals("com.android.chrome")
|| app.getComponentName().getPackageName().equals("com.android.contacts")
|| app.getComponentName().getPackageName().equals("com.android.documentsui")
|| app.getComponentName().getPackageName().equals("com.google.android.apps.photosgo")
|| app.getComponentName().getPackageName().equals("com.android.music")
|| app.getComponentName().getPackageName().equals("com.android.soundrecorder")
|| app.getComponentName().getPackageName().equals("com.android.vending")
|| app.getComponentName().getPackageName().equals("com.whatsapp")
|| app.getComponentName().getPackageName().equals("com.android.dialer")
) {
continue;
}
}
//*/

AppInfo appInfo = new AppInfo(app, user, quietMode);

iconRequestInfos.add(new IconRequestInfo<>(
appInfo, app, /* useLowResIcon= */ false));
mBgAllAppsList.add(
appInfo, app, !FeatureFlags.ENABLE_BULK_ALL_APPS_ICON_LOADING.get());
}
allActivityList.addAll(apps);
}

vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/LauncherAppState.java

SimpleBroadcastReceiver modelChangeReceiver =
new SimpleBroadcastReceiver(mModel::onBroadcastIntent);
modelChangeReceiver.register(mContext, Intent.ACTION_LOCALE_CHANGED,
Intent.ACTION_MANAGED_PROFILE_AVAILABLE,
Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE,
//*/tyd,lxd,add reload launcher bc
"android.intent.action.reloadworkspace",
//*/

Intent.ACTION_MANAGED_PROFILE_UNLOCKED,
ACTION_DEVICE_POLICY_RESOURCE_UPDATED);

/vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/LauncherModel.java

public void onBroadcastIntent(Intent intent) {

//*/tyd,lxd,add reload launcher show
else if ("android.intent.action.reloadworkspace".equals(action)) {
forceReload();
android.util.Log.d("TYD", "================onBroadcastIntent=================="+action);
}
//*/

}

frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

隐藏开机后没有隐藏完全的应用

//*/tyd,lxd,boot bc
filter.addAction(Intent.ACTION_BOOT_COMPLETED);
filter.addAction("android.intent.action.reloadworkspace");
//*/

Intent intent = context.registerReceiver(mDockReceiver, filter);

///*/tyd,lxd,add boot bc
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
PackageManager pm1 = mContext.getPackageManager();
ComponentName cmp1 = new ComponentName("com.android.settings", "com.android.settings.Settings");
pm1.setComponentEnabledSetting(cmp1,
pm1.COMPONENT_ENABLED_STATE_DISABLED,
pm1.DONT_KILL_APP);

PackageManager pm2 = mContext.getPackageManager();
ComponentName cmp2 = new ComponentName("com.android.calendar", "com.android.calendar.AllInOneActivity");
pm2.setComponentEnabledSetting(cmp2,
pm2.COMPONENT_ENABLED_STATE_DISABLED,
pm2.DONT_KILL_APP);

PackageManager pm3 = mContext.getPackageManager();
ComponentName cmp3 = new ComponentName("com.google.android.apps.photosgo", "com.google.android.apps.photosgo.home.HomeActivity");
pm3.setComponentEnabledSetting(cmp3,
pm3.COMPONENT_ENABLED_STATE_DISABLED,
pm3.DONT_KILL_APP);

PackageManager pm4 = mContext.getPackageManager();
ComponentName cmp4 = new ComponentName("com.android.vending", "com.android.vending.AssetBrowserActivity");
pm4.setComponentEnabledSetting(cmp4,
pm4.COMPONENT_ENABLED_STATE_DISABLED,
pm4.DONT_KILL_APP);

PackageManager pm5 = mContext.getPackageManager();
ComponentName cmp5 = new ComponentName("com.whatsapp", "com.whatsapp.Main");
pm5.setComponentEnabledSetting(cmp5,
pm5.COMPONENT_ENABLED_STATE_DISABLED,
pm5.DONT_KILL_APP);
}
//*/
//*/
if ("android.intent.action.reloadworkspace".equals(intent.getAction())) {
PackageManager pm1 = context.getPackageManager();
ComponentName cmp1 = new ComponentName("com.android.settings", "com.android.settings.Settings");
pm1.setComponentEnabledSetting(cmp1,
pm1.COMPONENT_ENABLED_STATE_DEFAULT,
pm1.DONT_KILL_APP);

PackageManager pm2 = context.getPackageManager();
ComponentName cmp2 = new ComponentName("com.android.calendar", "com.android.calendar.AllInOneActivity");
pm2.setComponentEnabledSetting(cmp2,
pm2.COMPONENT_ENABLED_STATE_DEFAULT,
pm2.DONT_KILL_APP);

PackageManager pm3 = context.getPackageManager();
ComponentName cmp3 = new ComponentName("com.google.android.apps.photosgo", "com.google.android.apps.photosgo.home.HomeActivity");
pm3.setComponentEnabledSetting(cmp3,
pm3.COMPONENT_ENABLED_STATE_DEFAULT,
pm3.DONT_KILL_APP);

PackageManager pm4 = context.getPackageManager();
ComponentName cmp4 = new ComponentName("com.android.vending", "com.android.vending.AssetBrowserActivity");
pm4.setComponentEnabledSetting(cmp4,
pm4.COMPONENT_ENABLED_STATE_DEFAULT,
pm4.DONT_KILL_APP);

PackageManager pm5 = context.getPackageManager();
ComponentName cmp5 = new ComponentName("com.whatsapp", "com.whatsapp.Main");
pm5.setComponentEnabledSetting(cmp5,
pm5.COMPONENT_ENABLED_STATE_DEFAULT,
pm5.DONT_KILL_APP);
}
//*/

按键按下3次触发暗码:

//*/tyd,lxd, set press triple click open dialpad
long mInterval = 0;
long mLastDown = 0;
int mButtonCountTaps = 0;
//*/

if (down) {
//*/tyd,lxd,add triple open diler pad
mInterval = event.getEventTime() - mLastDown;
mLastDown = event.getEventTime();
if (mInterval > 500) {
mButtonCountTaps = 1;
} else {
mButtonCountTaps ++;
}
//*/

sendBC("android.intent.action.F1.down");
mDownTime = event.getEventTime();
mHandler.postDelayed(new Runnable() {
public void run() {
sendBC("android.intent.action.F1.longpress");
}
}, 2 * 1000);
}
if (event.getAction() == KeyEvent.ACTION_UP) {
//*/tyd,lxd,add triple open diler pad
if (mButtonCountTaps == 3) {
Intent intent=new Intent(Intent.ACTION_DIAL);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
//*/

mHandler.removeMessages(0);
sendBC("android.intent.action.F1.up");
}

http://www.jsqmd.com/news/616951/

相关文章:

  • Node.js后端服务开发:调用cv_resnet101人脸检测API的实战教程
  • 【高并发金融支付调试核武器】:基于Xdebug+OpenTelemetry+自研TraceID链路追踪的实时支付流诊断方案(仅限持牌机构内部流出)
  • typora破解
  • Wan2.2-I2V-A14B Java面试热点:如何设计高并发视频生成任务系统?
  • 13.2软件架构风格
  • 端到端测试(E2E)的维护成本之困与破局
  • OpenClaw多账户管理:千问3.5-9B区分个人/工作模式
  • JMS, ActiveMQ 学习一则萄
  • RobotStudio 实战:3 步搞定活塞机械装置建模与运动仿真
  • 13.3补充-层次风格-SOA
  • 【零基础入门】本地LLM聊天机器人保姆级教程|Windows+Mac通用
  • sam3: RuntimeError: mat1 and mat2 must have the same dtype, but got BFloat16 and Float
  • 5分钟上手Qwen-Image-Edit-2511:免配置AI图像编辑神器实测
  • 龙芯k - 久久派开发环境搭建及内核升级(下)突
  • 面向 LLM 的程序设计 7:工具描述的工程化——name、description、parameters 怎么写才少误用
  • 医学大模型的体系化人工智能框架构建与应用
  • GLM-4.1V-9B-Base与Proteus联调:可视化电路仿真结果分析
  • AIGlasses_for_navigation 赋能 .NET 应用:Windows 平台下的智能监控系统开发
  • WSL2本地开发环境配置:在Windows上无缝调试忍者像素绘卷
  • ms-swift微调框架深度体验:支持Megatron并行技术,训练加速效果明显
  • CHORD-X模型在.NET技术栈中的集成应用:为C#项目添加智能报告功能
  • 13.4架构复用-DSSA-ABSD
  • Stable Diffusion写实神器Realistic Vision V5.1:零基础入门教程,手把手教你生成高清人像
  • BepInEx完整指南:5分钟掌握Unity游戏插件开发框架
  • 使用cv_unet_image-colorization处理VMware虚拟机中的历史图像
  • 忍者像素绘卷:天界画坊软件测试实战:API接口自动化测试与压测
  • vue3+element-plus 实现动态菜单和动态路由的渲染
  • 手把手教你用Face Analysis WebUI:上传图片秒得人脸分析报告
  • 南芯 SC3052C 集成 GaN 多模式反激 PWM 控制器 规格书 佰祥电子
  • AI医疗落地潮来袭,德适凭核心技术领跑全球赛道