作者: Claw, ITGeeker

  • Google TV / Shield TV / Tivo Stream 4K 无法访问互联网?修改 NTP 服务器搞定

    Google TV / Shield TV / Tivo Stream 4K 无法访问互联网?修改 NTP 服务器搞定


    问题描述:Google TV、Nvidia Shield TV、Tivo Stream 4K 等设备连接 WiFi 后,系统提示”已连接但无法访问互联网”,导致部分应用无法正常使用。

    解决方案:通过 ADB 修改设备的 NTP(网络时间协议)服务器地址和 captive portal 验证服务器地址即可解决。


    问题原因

    Android TV 原生设备在联网时,系统会通过 isCaptivePortal() 函数检查网络状态。该函数需要访问 Google 的验证 URL:

    https://clients3.google.com/generate_204

    在国内网络环境下,这个地址无法直接访问,Android 系统因此判定”网络受限”,即使你的 WiFi 实际上是可以正常上网的。

    另外,部分设备还需要连接合法的 NTP 服务器来校准时间,默认的时间服务器同样在国内无法访问。


    前置准备

    1. 开启设备的 ADB 调试模式

    在 Google TV / Shield TV 上操作:

    1. 进入 设置 → 关于 → Android TV 操作系统版本(或 系统版本信息
    2. 连续点击 4-7 次版本号,直到提示”您已处于开发者模式”
    3. 返回上一级菜单,找到 开发者选项
    4. 开启 USB 调试(部分设备还需开启 网络 ADB / 无线调试

    2. 安装 ADB 工具包

    在电脑上下载 ADB 工具:

    • 网盘下载:ADB 工具包
    • GitHub 直接下载:同上链接
    • 或者自行安装 platform-tools(Linux: sudo apt install android-sdk-platform-tools

    3. 连接设备

    确保电脑和电视盒子在同一局域网内,使用无线 ADB 连接,无需数据线。

    查看设备的 IP 地址(设置 → 网络与互联网 → WiFi → 当前网络详情),然后执行:

    adb connect 192.168.x.x

    如果弹出调试授权对话框,在电视上点击”确定”即可。


    第一步:修改 NTP 服务器地址

    将 NTP 服务器改为国内的阿里云地址:

    adb shell settings put global ntp_server ntp3.aliyun.com

    国内可用的 NTP 服务器列表:

    服务器地址说明
    ntp1.aliyun.com阿里 NTP 1
    ntp2.aliyun.com阿里 NTP 2
    ntp3.aliyun.com阿里 NTP 3(推荐)
    ntp4.aliyun.com阿里 NTP 4
    ntp5.aliyun.com阿里 NTP 5
    ntp6.aliyun.com阿里 NTP 6
    ntp7.aliyun.com阿里 NPT 7

    第二步:修改 Captive Portal 验证服务器

    注意:如果你的设备同时使用了代理软件(如 Clash),这一步尤其重要。因为系统需要访问一个能返回 HTTP 204 的网址来确认网络正常,而 clients3.google.com/generate_204 在国内无法访问。

    Android 10.0 及以下版本(大部分设备):

    # 开启 captive portal 检测
    adb shell settings put global captive_portal_detection_enabled 1
    
    # 设置 HTTPS 验证服务器(设为 0 表示使用 HTTP)
    adb shell settings put global captive_portal_use_https 0
    
    # 设置返回 204 的 HTTP URL(注意 http_url 后面是空格,不是换行!)
    adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204

    Android 11.0 及以上版本:

    # 设置 captive portal 模式为 1(手动模式)
    adb shell settings put global captive_portal_mode 1
    
    # 设置 HTTP 验证服务器
    adb shell settings put global captive_portal_use_https 0
    adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204

    可用的 captive portal 验证服务器:

    厂商URL
    小米http://connect.rom.miui.com/generate_204
    华为/荣耀http://connect.hicloud.com/generate_204
    vivohttp://wifi.vivo.com.cn/generate_204

    第三步:验证配置

    查看所有全局设置,确认修改是否生效:

    adb shell settings list global

    查找以下项是否正确:

    • ntp_server → 应为 ntp3.aliyun.com(或其他阿里地址)
    • captive_portal_http_url → 应为小米/华为/vivo 的 URL
    • captive_portal_use_https → 应为 0

    如何恢复默认设置?

    如果你想撤销修改,删除相关配置即可(设备会恢复使用 Google 默认值):

    adb shell settings delete global captive_portal_http_url
    adb shell settings delete global captive_portal_https_url

    或者重启设备后重新手动连接 WiFi,系统可能会重新获取默认值。


    常见问题与排错

    ❌ error: more than one device/emulator

    说明 ADB 检测到多个设备,指定具体设备即可:

    # 先查看设备列表
    adb devices
    
    # 然后指定设备安装或执行命令
    adb -s 192.168.188.249:5555 shell settings put global ntp_server ntp3.aliyun.com

    ❌ INSTALL_FAILED_DEPRECATED_SDK_VERSION

    安装旧版 APK 时可能遇到 SDK 版本过低的问题,添加 --bypass-low-target-sdk-block 参数:

    adb install --bypass-low-target-sdk-block your_app.apk

    ❌ INSTALL_FAILED_NO_MATCHING_ABIS

    设备的 CPU 架构与 APK 不匹配,下载对应架构的版本(如 armeabi-v7aarm64-v8a):

    adb -s DEVICE_IP:5555 install --bypass-low-target-sdk-block app-armeabi-v7a.apk

    ❌ 修改后依然提示”网络受限”

    1. 检查 captive portal URL 是否拼写正确(空格、斜杠不要遗漏)
    2. 尝试更换另一个厂商的验证服务器地址
    3. 重启设备或断开 WiFi 重新连接
    4. 如果使用了代理软件,确保代理规则已将验证域名排除(直连)

    额外:安装常用应用

    通过 ADB 可以无线安装 APK,比在电视上操作更方便:

    # 先连接设备
    adb connect 192.168.x.x
    
    # 安装应用
    adb install your_app.apk
    
    # 如果报 SDK 版本错误,使用 bypass 参数
    adb install --bypass-low-target-sdk-block your_app.apk
    
    # 指定设备安装(多设备时)
    adb -s 192.168.x.x:5555 install your_app.apk

    一些实用 TV 应用:

    • Downloader:从 Apps 搜索安装,输入 6 位数字码即可下载(如 714656
    • Emotn Store:TV 应用市场,分享码 639502
    • 订阅助手 TV 版:通过 Downloader 输入 714656 安装
    • SmartTube(原 SmartTubeNext):YouTube 去广告客户端

    参考资源


    如果本文对你有帮助,欢迎分享转发~有任何问题欢迎留言讨论!


  • ITGeeker Widgets — 一站式金融数据桌面工具箱

    ITGeeker Widgets — 一站式金融数据桌面工具箱

    版本: v1.0.1.0
    开发者: 技术奇客 ITGeeker.net
    官网: https://www.itgeeker.net
    平台: Windows 桌面应用


    一、产品概述

    ITGeeker Widgets 是一款面向投资者和金融从业者的 Windows 桌面工具箱,集成了 6 个独立运行的金融数据小部件(Widget),覆盖股票、基金、黄金、外汇、加密货币和行业板块六大维度。通过一个精致小巧的中央启动器,用户可以一键管理全部 Widget 的启停、自启和外观设置,无需逐个打开。

    所有 Widget 均为独立进程,采用无边框、半透明悬浮窗设计,可自由放置在桌面任意位置,不遮挡日常工作,实现「一瞥即知」的信息获取体验。


    二、六大金融数据 Widget

    序号Widget 名称说明
    1📈 股票行情实时个股行情、分时/K线图表,支持自选股监控
    2📊 持仓组合投资组合管理,持仓盈亏、仓位分布一目了然
    3🧈 黄金价格国际/国内金价实时追踪,支持多单位显示
    4💱 汇率行情主要货币对实时汇率,覆盖美元、欧元、日元等
    5🏭 行业板块A股行业板块涨跌、资金流向热力图
    6加密货币主流加密货币行情,BTC/ETH 等实时报价

    每个 Widget 都是独立开发的 .exe 程序,互不干扰。你可以按需启动 1~6 个,不会因为不需要的模块浪费系统资源。


    三、中央启动器核心功能

    3.1 智能卡片式管理

    主窗口以 6 张卡片展示全部 Widget,每张卡片包含:

    元素功能
    🎨 图标优先使用各 Widget 自带图标,回退 emoji 兜底
    📛 名称/副标题中文名 + 英文标识,一目了然
    🟢 运行状态绿点实时显示当前 Widget 是否正在运行
    🚀 启动/运行中按钮未运行时蓝色「启动」;运行中绿色「运行中」并禁用,防止重复启动
    🔴 关闭/已关闭按钮运行时红色「关闭」;未运行时灰色「已关闭」并禁用
    ✅ 自启复选框可对单个 Widget 设置随 Windows 开机自启

    3.2 一键批量操作

    • ▶ 一键开启全部:同时启动所有 6 个 Widget,幂等设计,已运行的不会重复启动
    • ⏹ 一键关闭全部:优雅终止所有 Widget 进程,先 terminate() 再 3 秒超时 kill()

    3.3 智能进程追踪

    • 启动时自动扫描系统中是否已有 Widget 在运行(无论通过何种方式打开),并同步卡片状态
    • 关闭时不仅尝试缓存的 PID,还会按 exe 文件名遍历所有匹配进程,确保「关得彻底」
    • 上次退出时运行的 Widget,下次启动自动恢复

    四、外观自定义

    通过右键菜单 →「⚙️ 设置…」进入外观定制面板,支持:

    设置项说明
    🎨 背景颜色自由选色,内置「深邃宇宙」「午夜蓝」「暗绿科技」「深紫极光」「纯黑」5 种预设
    🔍 窗口透明度滑块 20%~100% 无级调节,磨砂质感始终保留
    🔤 字体大小8~20 pt 连续调节
    👁️ 实时预览任何外观参数的改动在设置对话框中即时生效,无需确认

    窗口整体采用磨砂深色半透明设计(rgba(18,18,26,220)),圆角边框,在任何桌面壁纸上都能保证文字清晰可读,同时保留微妙的透明质感。


    五、系统托盘深度集成

    ITGeeker Widgets 启动后常驻系统托盘,不霸占任务栏:

    功能说明
    🖱️ 双击托盘图标显示/隐藏主窗口
    📋 右键托盘图标弹出完整功能菜单
    💬 托盘 Tooltip动态显示当前运行的 Widget 数量和名称列表,如「运行中: 3/6」
    🔒 点击窗口关闭按钮最小化到托盘而非退出(可配置)
    ❌ 托盘菜单退出唯一彻底退出的方式,退出前保存窗口位置和运行状态

    托盘菜单与窗口右键菜单完全一致,包含:显示窗口、窗口置顶、自动启动设置(自身 + 6 个 Widget)、外观设置、关于、访问官网。


    六、开机自启管理

    支持两级开机自启控制,均通过 Windows 注册表 Run 键HKCU\Software\Microsoft\Windows\CurrentVersion\Run)实现:

    • 自身自启:启动器本身是否随系统启动
    • Widget 自启:每个 Widget 可独立设置是否开机自启

    特性:
    – 自启复选框状态在启动时自动与注册表同步,确保 UI 反映真实系统配置
    – 写入注册表后立即回读确认,以实际生效状态为准
    – 全程使用 winreg 标准库,无第三方依赖


    七、窗口管理

    特性说明
    🪟 无边框窗口干净利落,无标题栏冗余
    📌 窗口置顶右键菜单一键切换,置顶时始终悬浮在其他窗口之上
    ✋ 拖动标题栏自定义标题栏支持任意位置拖动
    📐 右下角尺寸调节SizeGrip 支持自由缩放
    💾 位置记忆窗口位置/大小通过 400ms 防抖计时器自动保存到 JSON
    🔲 圆角边框14px 圆角,现代感十足

    窗口样式全面采用暗色主题(#1a1a2e),配合亮色强调色(#00d4ff 青蓝),视觉风格统一。


    八、技术架构特点

    维度说明
    🐍 语言/框架Python 3.12 + PySide6(Qt for Python)
    🧩 进程架构主进程(启动器)+ 6 个独立子进程(Widget),互不干扰
    🔧 子进程启停subprocess.Popen + DETACHED_PROCESS 标志,子进程完全独立于主进程生命周期
    🗄️ 配置存储JSON 文件,路径 %APPDATA%\ITGeekerWidgets\settings.json,支持深度合并与向后兼容
    📦 打包分发PyInstaller 单文件打包,生成独立的 ITGeekerWidgets.exe
    📐 统一版本号version.py 单一真相源,版本号、开发者、网址统一管理
    🖼️ 高 DPI启用 QT_ENABLE_HIGHDPI_SCALING,4K 屏友好
    🔍 进程检测基于 psutil 的实时进程扫描,按 exe 文件名精确匹配

    注册表命名规范

    类型注册表键名
    本程序ITGeekerWidgets
    股票行情ITGeekerWidget_Stock
    持仓组合ITGeekerWidget_Portfolio
    黄金价格ITGeekerWidget_Gold
    汇率行情ITGeekerWidget_Exchange
    行业板块ITGeekerWidget_Industry
    加密货币ITGeekerWidget_Crypto

    九、适用场景

    • 💼 金融从业者:交易时段多屏监控,Widget 分散放置在各显示器角落
    • 📊 个人投资者:日常盯盘、关注汇率和金价的散户
    • 🪙 加密货币玩家:同时关注传统金融和加密市场
    • 🖥️ 桌面美化爱好者:半透明悬浮窗提升桌面颜值,信息与美观兼得

    十、一句话总结

    ITGeeker Widgets — 把 6 个金融数据小工具装进一个精致启动器,开机即用,关不掉的优雅。


    © 2024 技术奇客 ITGeeker.net · 保留所有权利

奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4