Skip to content

About

安卓版FlightRadar App

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

基于之前某些特别恶心的人的行为,我从今往后只提供固件下载,不公开任何源代码

Flight Radar For Android

手机 GPS
   ├── ADS-B / OpenSky等网站公开航班数据
   ├── 最近机场 METAR 气象短报文
   ├── OpenStreetMap / RainViewer 图层
   └── 本地雷达、飞行面板和飞行日志

功能

航班和雷达

  • GPS 定位;无定位时使用默认坐标 25.0330, 121.5654;
  • adsb.lol、airplanes.live 和匿名 OpenSky 数据源切换;
  • 50–800 km 范围切换;
  • 实时雷达扫描动画、航向向量和紧急 Squawk 标记;
  • 点击飞机查看呼号、机型、注册号、高度、速度、航向、爬升率、距离和 Squawk;
  • 120 秒最近接近预测,用红色标记潜在 ATC 冲突;
  • 雷达圆圈在 N 方向标记 1/4、1/2、3/4 和外圈公里刻度。

地图、回波和气象

  • OpenStreetMap 中心地图图层;
  • RainViewer 最新雷达回波图层;
  • 根据手机 GPS 自动选择最近机场;
  • 使用 FlightMate 同源的 aviationweather.gov 获取最近机场 raw METAR 短报文。

FlightMate 功能

  • Flight Panel:航班号、起飞机场 ICAO、到达机场 ICAO、机型和备注;
  • Flight Log:本地保存最多 30 条飞行记录;
  • Android 单次闹钟通知;
  • Home Assistant REST 状态发布:sensor.flight_radar_aircraft;
  • 离线机型资料和简化飞机轮廓。

界面布局

  • 竖屏:雷达在上方,机场气象、Flight Panel、飞机列表和状态在下方;
  • 横屏:雷达固定在左侧,信息面板固定在右侧;
  • 顶部按钮使用紧凑布局,减少对雷达区域的占用;
  • 飞机列表每架飞机只显示一行,固定列宽且不启用横向滚动。
FlightRadar主界面

飞机列表格式示例:

01 TAG21    GLF5  T231° A12200m S 939km/h D157.3km

字段依次为:序号、呼号、飞机类型、航向、海拔、速度和距离。无机型时显示 ICAO。

数据接口

数据 接口 说明
默认航班 https://api.adsb.lol/v2/point/... 无需账号,作为默认数据源
备用航班 https://api.airplanes.live/v2/point/... 受网络 DNS 和服务可用性影响
OpenSky https://opensky-network.org/api/states/all 当前使用匿名区域状态向量接口,受频率限制
机场 METAR https://aviationweather.gov/api/data/metar 最近机场最近 2 小时 raw METAR
地图 https://tile.openstreetmap.org 中心瓦片,低透明度叠加
雷达回波 https://api.rainviewer.com / tilecache.rainviewer.com metadata 加最新回波瓦片
Home Assistant /api/states/sensor.flight_radar_aircraft Bearer Token REST 写入

网络接口失败时,界面会显示网络错误或图层错误,不把网络故障误报为“0 架飞机”。

使用方法

  1. 首次启动时授予定位权限。
  2. 使用数据源下拉框选择 adsb.lol、airplanes.live 或 OpenSky。
  3. 点击 RANGE 切换雷达半径,点击 REFRESH 更新航班和机场气象。
  4. 点击 MAP、RAIN、ATC 开关图层、回波和冲突向量。
  5. 点击雷达上的飞机,或在列表中查看紧凑目标信息;点击目标后下方显示详细资料。
  6. 点击 FLIGHT 编辑 Flight Panel,选择 SAVE + LOG 同时保存面板和本地飞行记录。
  7. 点击 LOG 查看历史记录或保存当前面板。

Home Assistant

点击 HA,输入:

  • Home Assistant 地址,例如 http://homeassistant.local:8123;
  • Long-lived access token。

应用会发布:

sensor.flight_radar_aircraft

状态值是当前飞机数量,属性包含手机当前纬度和经度。为兼容局域网 Home Assistant,应用允许明文 HTTP;跨网络使用时应改用 HTTPS,并避免在不可信网络中传输 Token。

构建

构建环境:

  • JDK 17;
  • Android SDK Platform 35;
  • Android Build Tools 35;
  • Gradle 8.7 或更高版本。

在工程目录执行:

gradle :app:assembleDebug

生成文件:

app\build\outputs\apk\debug\app-debug.apk

安装到 Android 手机

打开手机的开发者选项和 USB 调试,连接手机后执行:

$adb = "<Android SDK>\platform-tools\adb.exe"
& $adb devices -l
& $adb install -r .\app\build\outputs\apk\debug\app-debug.apk
& $adb shell am start -n com.delphicchen.flightradar/.MainActivity

如果 adb devices -l 没有显示设备,先检查 USB 调试授权、数据线、Windows 驱动和手机 USB 连接模式。

Android 权限

应用声明:

  • INTERNET:访问航班、地图、回波、METAR 和 Home Assistant;
  • ACCESS_FINE_LOCATION / ACCESS_COARSE_LOCATION:手机 GPS;
  • POST_NOTIFICATIONS:Android 13 及以上的闹钟通知;
  • SCHEDULE_EXACT_ALARM:设置精确闹钟。

当前限制

  • OpenSky 当前为匿名接口,没有接入 OAuth Client ID/Secret;
  • 闹钟是单个下一次提醒,不是 ESP32 原版的四组闹钟面板;
  • 飞机轮廓是 Android 端的离线种子资料和简化轮廓,不包含原项目完整大型位图数据库;
  • 地图、RainViewer、OpenSky 和 METAR 依赖手机网络;
  • airplanes.live 是否可用取决于当前网络 DNS、连通性和服务限流;
  • 需要在真实 vivo X Fold5 上进一步验证折叠态、横竖屏切换、定位权限、网络限流、METAR 刷新和 UI 密度。

验证状态

v0.3.3 已完成:

  • Gradle Debug APK 构建;
  • APK applicationId、版本和权限静态检查;
  • APK Signature Scheme v2 签名检查;
  • ADS-B、OpenSky 和 METAR 接口连通性测试;
  • APK 和源码 ZIP SHA-256 校验。

许可证和第三方数据

本适配版仅在 Android 端复用原项目的数据字段和交互思路。原项目及飞机轮廓等第三方资源的许可证、署名和非商业限制仍以原仓库为准:

https://github.com/delphicchen/esp32_flight_radar

About

安卓版FlightRadar App

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors