 | |  |  | AIWROK软件无碍模式一键删除所有APP版示例
- //// AIWROK软件一键删除所有APP版示例
- // 使用无障碍模式UI自动化卸载应用
- print.log("===== auto 无障碍模式 一键删除所有应用版 =====");
- print.log("📌 重要提示:请确保手机屏幕当前显示桌面!");
- var 屏幕宽 = screen.getScreenWidth();
- var 屏幕高 = screen.getScreenHeight();
- print.log("当前屏幕:" + 屏幕宽 + " x " + 屏幕高);
- auto.setDetailedModel();
- var 排除包名列表 = [
- "com.android.launcher3",
- "com.android.settings",
- "com.android.systemui",
- "com.android.phone",
- "com.android.mms",
- "com.android.camera",
- "com.android.contacts",
- "com.android.dialer",
- "com.android.email",
- "com.android.calendar",
- "com.android.gallery",
- "com.android.filemanager",
- "com.android.browser",
- "com.android.inputmethod",
- "com.google.android",
- "com.android.webview",
- "com.android.fallback",
- "com.android.providers",
- "com.android.server",
- "com.android.internal",
- "com.android.location",
- "com.android.wifi",
- "com.android.bluetooth",
- "com.android.nfc",
- "com.android.usb",
- "com.android.media",
- "com.android.audio",
- "com.android.soundrecorder",
- "com.android.packageinstaller",
- "com.android.vending",
- "com.android.market",
- "com.android.keychain",
- "com.android.print",
- "com.android.dreams",
- "com.android.externalstorage",
- "com.android.sharedstoragebackup",
- "com.android.backup",
- "com.android.proxyhandler",
- "com.android.captiveportallogin",
- "com.android.documentsui",
- "com.android.pacprocessor",
- "com.android.storagemanager",
- "com.android.managedprovisioning",
- "com.android.cts",
- "com.android.flags",
- "com.android.egg",
- "com.android.framework",
- "com.android.settings.intelligence",
- "com.android.shell",
- "com.android.system",
- "com.android.traceur",
- "com.android.uirenderer",
- "com.android.wallpaper",
- "com.android.wallpaper.livepicker",
- "com.android.launcher",
- "com.android.inputmethod.latin",
- "com.android.inputmethod.pinyin",
- "com.android.inputmethod.sogou",
- "com.baidu.input",
- "com.tencent.input",
- "io.aiwork",
- "com.aiwork",
- "aiwork",
- "com.layernet.launcher",
- "com.autoapp"
- ];
- function 是否排除包名(pkg) {
- for (var i = 0; i < 排除包名列表.length; i++) {
- var exclude = 排除包名列表[i];
- if (pkg === exclude || pkg.indexOf(exclude) === 0) {
- return true;
- }
- }
- if (pkg.indexOf("com.android.") === 0) {
- return true;
- }
- if (pkg.indexOf("android.") === 0) {
- return true;
- }
- return false;
- }
- function 获取已安装应用列表() {
- print.log("🔍 正在获取已安装应用列表...");
- var 应用列表 = [];
-
- try {
- var pm = context.getPackageManager();
- var packageInfoList = pm.getInstalledPackages(0);
-
- for (var i = 0; i < packageInfoList.size(); i++) {
- var info = packageInfoList.get(i);
- var pkg = info.packageName;
-
- if (!是否排除包名(pkg)) {
- var 应用名称 = pm.getApplicationLabel(info.applicationInfo).toString();
- 应用列表.push({
- packageName: pkg,
- name: 应用名称
- });
- }
- }
-
- print.log("📝 共获取到 " + 应用列表.length + " 个可卸载应用");
- } catch (e) {
- print.log("✗ 获取应用列表失败:" + e.message);
- }
-
- return 应用列表;
- }
- function 查找文字节点(关键词) {
- try {
- auto.refresh();
- var 节点集合 = auto.nodeSearch(2000);
- if (节点集合 == '' || 节点集合 == null) {
- return null;
- }
-
- var 文本过滤 = 节点集合.text(关键词);
- if (文本过滤 != '' && 文本过滤 != null && 文本过滤.count() > 0) {
- return 文本过滤.getNode(0);
- }
-
- var 包含过滤 = 节点集合.textIncludes(关键词);
- if (包含过滤 != '' && 包含过滤 != null && 包含过滤.count() > 0) {
- return 包含过滤.getNode(0);
- }
- } catch (e) {
- print.log(" ⚠ 查找节点出错:" + e.message);
- }
- return null;
- }
- function 卸载应用(pkg, 应用名称) {
- print.log("🔄 正在卸载:" + 应用名称 + " (" + pkg + ")");
-
- try {
- app.openAppSeting(pkg);
- sleep.second(3);
- auto.refresh();
-
- var 卸载文字节点 = 查找文字节点("卸载");
- if (!卸载文字节点) {
- print.log("⚠ 未找到卸载按钮,可能是系统应用:" + 应用名称);
- auto.home();
- sleep.second(1);
- return false;
- }
-
- var 卸载中心 = 卸载文字节点.getCenter();
- var 卸载X = 卸载中心.x();
- var 卸载Y = 卸载中心.y();
- print.log("✓ 找到卸载按钮,坐标:" + 卸载X + ", " + 卸载Y);
-
- auto.clickPoint(卸载X, 卸载Y);
- sleep.second(2);
- auto.refresh();
-
- var 确定文字节点 = 查找文字节点("确定");
- if (!确定文字节点) {
- 确定文字节点 = 查找文字节点("卸载");
- }
-
- if (确定文字节点) {
- var 确定中心 = 确定文字节点.getCenter();
- var 确定X = 确定中心.x();
- var 确定Y = 确定中心.y();
- print.log("✓ 找到确认按钮,坐标:" + 确定X + ", " + 确定Y);
-
- auto.clickPoint(确定X, 确定Y);
- print.log("✓ 点击确认卸载");
- sleep.second(3);
- print.log("✓ 卸载成功:" + 应用名称);
- return true;
- } else {
- print.log("⚠ 未找到确认按钮");
- auto.home();
- sleep.second(1);
- return false;
- }
-
- } catch (e) {
- print.log("✗ 卸载异常:" + 应用名称 + ",错误:" + e.message);
- auto.home();
- sleep.second(1);
- return false;
- }
- }
- print.log("\n--- 步骤1:获取已安装应用列表 ---");
- var 应用列表 = 获取已安装应用列表();
- if (应用列表.length === 0) {
- print.log("✓ 未找到可卸载的应用,结束卸载");
- print.log("\n===== 一键删除所有应用示例结束 =====");
- } else {
- print.log("\n--- 步骤2:开始批量卸载 ---");
- var 成功数 = 0;
- var 失败数 = 0;
- var 已卸载列表 = [];
- var 未卸载列表 = [];
-
- for (var i = 0; i < 应用列表.length; i++) {
- var 应用 = 应用列表[i];
-
- print.log("\n📋 处理应用:" + (i + 1) + "/" + 应用列表.length);
- print.log(" 名称:" + 应用.name);
- print.log(" 包名:" + 应用.packageName);
-
- var success = 卸载应用(应用.packageName, 应用.name);
- if (success) {
- 成功数++;
- 已卸载列表.push(应用.name + " (" + 应用.packageName + ")");
- } else {
- 失败数++;
- 未卸载列表.push(应用.name + " (" + 应用.packageName + ")");
- }
-
- sleep.second(1);
- }
-
- print.log("\n--- 步骤3:卸载结果统计 ---");
- print.log("📊 卸载统计:");
- print.log(" ✅ 成功:" + 成功数 + " 个");
- print.log(" ❌ 失败:" + 失败数 + " 个");
-
- if (已卸载列表.length > 0) {
- print.log("\n✅ 成功卸载的应用:");
- for (var i = 0; i < 已卸载列表.length; i++) {
- print.log(" " + (i + 1) + ". " + 已卸载列表[i]);
- }
- }
-
- if (未卸载列表.length > 0) {
- print.log("\n❌ 未卸载成功的应用:");
- for (var i = 0; i < 未卸载列表.length; i++) {
- print.log(" " + (i + 1) + ". " + 未卸载列表[i]);
- }
- print.log("\n⚠ 提示:失败的应用可能是系统应用或需要特殊权限才能卸载");
- }
-
- print.log("\n===== 一键删除所有应用示例结束 =====");
- }
复制代码
| |  | |  |
|