{{detailStore.author.is_follow?'已关注':'关注'}}
管理
NGP功能补全.js 用户手册(详细版)
文章

一、脚本概述

本脚本运行于 AutoJS6 环境,专为小鹏汽车车机(XOS)设计。主要实现两大功能:

1. 自动记录导航信息:实时读取导航栏数据,保存到本地文件,便于事后分析。

2. 按场景自动切换驾驶模式:在 NGP(导航辅助驾驶)与 LCC(车道居中辅助)之间智能切换,适配特定道路、距离、出口等条件。

AutoJS6 是一款强大的安卓平台 JavaScript 自动化工具,基于原 Auto.js 项目二次开发,支持无障碍服务、图像识别、控件操作等核心功能。脚本通过双击图标的方式模拟手动切换,无需额外硬件。

---

二、主要功能详解

2.1 导航信息记录

· 读取字段:NGP状态、驾驶状态(NGP/LCC/手动/L→N)、当前道路、剩余距离/单位、转向动作(如“进入”)、出口编号/名称、目标道路。

· 输出位置:/storage/emulated/0/脚本/NavigationRecord.txt

· 记录格式:时间戳 | NGP状态 | 驾驶状态 | 当前道路 | 距离/单位 | 转向动作 | 出口 | 目标道路

· 写入方式:自动创建文件,每次读取后追加一行。

2.2 驾驶模式切换

脚本提供三个独立函数,可在主循环中调用,也可手动触发:

· switchNGPToLCC():从 NGP 切换至 LCC(双击 NGP 图标)。

· switchLCCToNGP():从 LCC 切换至 NGP(双击“切换至NGP”按钮)。

· switchDrivingMode():智能判断当前模式并自动切换到另一种模式。

2.3 内置场景规则(示例)

主循环中已配置若干触发条件,用户可根据需要修改:

触发场景 条件 动作

鸡公山隧道 当前道路=“鸡公山隧道”,距离>1.1公里 NGP → LCC

水官高速出口 当前道路=“S28水官高速”,距离<1.1公里,出口=“入口”,目标=“福田 南山” NGP → LCC

龙景立交/南坪快速 距离>5公里,转向=“进入 丰泽湖隧道” NGP → LCC

北环大道出口 当前道路=“北环大道”,距离<1.1公里,出口=“出口”,目标=“坂田 坂银大道” LCC → NGP

南坪快速出口 当前道路=“南坪快速”,距离<1.5公里,出口=“出口”,目标=“西丽” LCC → NGP

说明:L→N 状态表示 LCC 模式下出现了“切换至 NGP”按钮,此时执行 LCC→NGP 切换。

---

三、使用前提

项目 要求

硬件 小鹏汽车(支持NGP/LCC的车型),车机已登录

软件 AutoJS6(已安装并授予无障碍权限)

权限 Shizuku 已激活并授权,用于执行 settings get system curXPilotStatus

车机状态 导航已开启,且导航栏控件(guide_navi_info)可见

文件系统 /storage/emulated/0/脚本/ 目录存在或可自动创建

---

四、安装与配置步骤

4.1 安装 AutoJS6 及授予权限

1. 从官方渠道下载 AutoJS6 并安装。

2. 打开 AutoJS6,根据提示授予 无障碍服务 权限。

3. 授予 悬浮窗 权限(用于显示 Toast)。

4.2 配置 Shizuku

1. 安装 Shizuku 应用并激活(无线调试或 root)。

2. 在 AutoJS6 中启用 Shizuku 集成。

3. 测试执行:shizuku("settings get system curXPilotStatus") 应返回数值。

注意:直接写入无障碍服务列表会导致其他已启用的服务被意外覆盖,建议采用追加模式以保留原有服务。

4.3 导入脚本

1. 将 1NGP功能补全.js 文件复制到手机内部存储任意目录(建议 /storage/emulated/0/脚本/)。

2. 打开 AutoJS6,点击右下角“+” → 导入 → 选择该文件。

4.4 修改脚本(可选)

· 如需更改触发条件,编辑主循环中的 if 判断。

· 如需调整记录间隔,修改最后的 sleep(10000)(单位毫秒)。

· 如需更改日志路径,修改 LOG_FILE_PATH 常量。

---

五、运行与操作指南

5.1 运行脚本

1. 车机处于导航界面(确保顶部导航条显示距离、转向等信息)。

2. 在 AutoJS6 中找到脚本,点击 运行 按钮(三角形图标)。

3. 脚本开始每 10 秒检测一次,并显示 Toast 提示当前读取的导航信息。

5.2 手动触发切换(调试用)

若需临时切换而不等待条件触发,可在 AutoJS6 的“控制台”或单独脚本中调用:

```javascript

// 单独执行切换

switchNGPToLCC(); // NGP→LCC

switchLCCToNGP(); // LCC→NGP

switchDrivingMode(); // 自动反转

```

注意:需要先运行主脚本使函数定义生效。

5.3 停止脚本

· 关闭 AutoJS6 的“正在运行”服务(通知栏停止)。

· 或直接退出 AutoJS6 应用。

---

六、日志文件说明

6.1 查看日志

使用文件管理器打开 /storage/emulated/0/脚本/NavigationRecord.txt,或用 AutoJS6 内置的文件浏览功能。

6.2 日志示例

```

时间戳 | NGP状态 | 驾驶状态 | 当前道路 | 距离/单位 | 转向动作 | 出口 | 目标道路

2026-04-09 10:30:15 | 1 | NGP | 鸡公山隧道 | 2.3公里 | 进入 | | 

2026-04-09 10:30:25 | 1 | NGP | 鸡公山隧道 | 1.0公里 | 进入 | | 

2026-04-09 10:30:35 | 0 | LCC | 鸡公山隧道 | 0.8公里 | 进入 | | 

```

6.3 日志用途

· 复盘驾驶模式切换的时机与地点。

· 调试新增触发条件是否准确。

· 分析导航控件在不同路况下的显示内容。

---

七、常见问题及解决

问题 可能原因 解决方法

Toast 显示“导航条消失” 未进入导航界面,或导航栏被遮挡 确保车机导航已启动且处于路线引导状态

切换无反应 控件 ID 变化或图标位置偏移 更新脚本中的控件 ID;检查是否因车机主题导致图标位置变化

读取到的 ngp_status 为 undefined Shizuku 未正确配置 重新授权 Shizuku,在 AutoJS6 中测试 shizuku("settings get system curXPilotStatus")

文件写入失败 目录不存在或无写入权限 手动创建 /storage/emulated/0/脚本/ 文件夹,并检查存储权限

频繁误切换 触发条件过于宽松 收紧判断条件(如增加 navi.distance > 1.1 && navi.distance < 2.0)

双击切换时误触其他区域 控件实际可点击区域与预期不一致 改用 控件.click() 方法而非坐标点击(需修改脚本)

---

八、安全与免责声明

1. 安全第一:请在封闭场地或安全路段测试脚本,确认切换行为符合预期后再上路使用。

2. 驾驶责任:驾驶员始终对车辆操控负全责。脚本仅作为辅助,不得完全依赖。

3. 系统更新:小鹏 OTA 可能改变控件 ID 或行为,届时需同步更新脚本。

4. 修改风险:自行修改触发条件或点击逻辑可能导致意外切换,请谨慎操作。

---

九、自定义扩展指南

9.1 增加新触发场景

在主循环的 if (navi.drive_state == "NGP") 或 if (navi.drive_state == "L→N") 代码块中添加新的判断:

```javascript

if (navi.curroad == "深南大道" && navi.distance < 0.3 && navi.unit == "公里") {

    switchNGPToLCC();

}

```

9.2 修改记录间隔

将文件末尾的 sleep(10000); 改为所需毫秒数(例如 5000 为 5 秒)。

9.3 添加额外记录字段

在 writeLogToFile 函数中增加字段,同时修改表头与数据拼接。

---

十、版本与作者

· 版本:2026.04.07

· 作者:桥客

· AutoJS6 版本:v6.2.0+

如有问题,建议先在 AutoJS6 控制台逐行调试 readNavi() 函数,确认各字段返回值正确。

如果你觉得脚本有用,请好好反思一下为什么摊上了这么个车企,并劝阻身边亲友远离始乱终弃不负责任的车企。

浏览15秒 抽奖机会+1
任务完成 继续看看吧 +1
写评论
积分赞赏
点赞
评论区
  • 编辑
  • {{is_favourite ? '已收藏' : '收藏'}}
  • {{is_personal_top ? '取消主页置顶' : '个人主页置顶'}}
  • 举报
  • 加入黑名单
  • 内容{{ eyes_only ? '公开' : '仅自己' }}可见
  • 删除
  • 取消置顶
  • 置顶推荐
    • 6小时
    • 12小时
    • 24小时
    • 3天
    • 一周
    • 长期
  • {{feature?'撤销':'进'}}精选库
  • {{digest?'撤销精华':'设为精华'}}
回到顶部
  • 全部评论{{detailStore.commentnum}} 条
  • 只看作者
  • 最热
  • 最新
  • 最早

「待审核」

首评 {{ comment.relativeTime }} 已被赞赏 {{comment.integral}} 积分 回复

{{ type!=10 ? '前排沙发空着~' : '暂无相关评论' }}

{{type!=10 ? '还没有人评论哦,快抢沙发吧!' : '发表一下个人看法吧'}}