An open API service indexing awesome lists of open source software.

https://github.com/evan8686/eew-receiver

一个基于wolfx公开API推送服务的即时地震预警 Android APP
https://github.com/evan8686/eew-receiver

android-app earthquake earthquake-detection earthquake-early-warning eew

Last synced: 2 months ago
JSON representation

一个基于wolfx公开API推送服务的即时地震预警 Android APP

Awesome Lists containing this project

README

          

# EEW-Receiver (地震预警接收器)
![EEW Receiver Banner](assets/mybanner.png)

[![下载最新版本](https://img.shields.io/badge/下载-最新版本APK-success?style=for-the-badge&logo=android)](https://github.com/evan8686/EEW-Receiver/releases/latest)

### 📌 项目目的
大陆的地震预警系统目前尚未接入 **台湾地区中央气象署(CWA)** 的地震预警。而作为受台湾地震影响明显的 福建/浙江 地区,经常有明显震感,却得不到任何预警。为了确保福建、浙江南部沿海城市的居民能及时收到预警,特别做了这个项目。

### 🛠️ 项目性质
* **开发背景**:本项目纯属个人在 **Gemini AI** 辅助下开发。
* **技术架构**:使用了 **Wolfx** 的 websocket API 接口来订阅推送。API 说明:https://wolfx.jp/apidoc_zh
* **注意事项**:本人不对接口的稳定性负责。本人暂无软件开发经验,目前项目以自用为主要目的。
* **核心优势**:不使用Google FCM推送,而是直接接收来自websocket API的推送。确保第一时间收到推送!(您在谷歌应用商店安装的来自其他地区的预警APP,通常使用谷歌FCM推送,在大陆网络环境可能无法正常获取推送,延时可能长达数小时甚至一整天,这对于地震预警来说将失去意义)
---

### 📖 使用说明
1. **修改阈值**:打开 APP 进入设置,可修改全屏警报的震级阈值(此处指的是EEW推送里的震级,而非您的本地实际震级。默认为3)。
2. **权限授予**:确保您已经为 APP 授予了所有必要的通知权限,并在系统设置中配置防杀后台相关的权限。
3. **运行状态**:
* **监控中**:未收到预警时,通知栏会常驻“地震预警监控中”的通知(为了防杀)。
* **未达阈值**:收到 API 的地震预警推送时,若未达阈值,将只弹普通通知。
* **达到阈值**:若已达阈值,则除了弹通知外,还将触发全屏警报、震动。
4. **数据源说明**:当前内建默认源为 **台湾中央气象署**。(这是福建地区迫切需要的预警信息。您可自行勾选更多源,但这将增加耗电。大陆境内发生的地震预警,仍然建议您开启手机系统自带的地震预警)
5. **强制警报**:为了不漏掉任何一次关键预警,APP 采用系统闹钟音量通道进行播报。警报音量将不受媒体音量静音或手机响铃模式影响,完全遵循您的系统闹钟音量设置,确保预警信息的第一时间送达。
---

### 🧪 功能测试流程【请务必在安装后进行测试!!!】

#### 1. 测试手机使用状态下全屏弹窗警报功能
* 点击设置页面中的 **“模拟触发”** 按钮。
* 立即返回到手机桌面。
* 等待全屏警报弹出,确认是否有全屏警报、声音和震动,并查看通知栏是否有测试预警的通知。

#### 2. 测试锁屏息屏状态下全屏弹窗警报功能
* 点击 **“模拟触发”** 按钮后,立即返回桌面并立刻按下电源键息屏(需在 3 秒内尽快完成)。
* 等待全屏警报弹出,确认是否有全屏警报、声音和震动,并查看通知栏是否有测试预警的通知。

---

### ⚠️ 关键配置【重要!!!APP需要后台保活才有意义!】
请严格按下列方式操作,以确保核心预警功能能够保活并持续工作:

#### **1. 设置 - 通知 - EEW Receiver**
* **a.** 开启“允许通知”,并将 **“锁屏/横幅”** 打勾。
* **b.** 打开 **“铃声/震动/允许打扰”**(该项指即便手机处于免打扰模式时,应用仍能正常响铃和震动)。
* **c.** 将“类别”下的 **“地震预警事件”** 设为允许通知,“地震预警后台监控”则维持默认的“静默通知”即可。

#### **2. 设置 - 应用管理 - EEW Receiver - 权限管理**
* **a.** 锁屏显示:设为 **“允许”**。
* **b.** 滚动页面到下方,进入 **“其他权限”** -> **“特殊应用权限”**:(您先进入这个页面,尝试调整权限,系统会提示您需要解锁限制)
* **c.** 回到EEW Receiver - 权限管理 主界面,此时点击右上角新出现的 3 个点,选择 **“解锁所有授权限制”** 进行解除。
* **d.** 回到**“特殊应用权限”**页面
* **悬浮窗**:设为“允许”。
* **后台弹出界面**:设为“允许”。
* **发送全屏通知**:设为“允许”。

#### **3. 桌面多任务界面 - EEW Receiver - 锁定不清理**
* **a.** 上滑呼出多任务界面
* **b.** 找到 EEW Reveiver,点击 3 个点,选择 **“锁定”** (即,在多任务窗口一键清理使用过的应用时,不会被杀掉)

#### **4. 耗电管理 - EEW Receiver - 完全允许后台行为**
* **a.** 进入耗电管理相关的设置界面
* **b.** 找到 EEW Reveiver,选择 **“完全允许后台行为”**

#### **5. 应用 - 自启动 - 允许 EEW Receiver 自启动**

#### 以上设置 以 OPPO ColorOS 16 为例,若您使用 小米澎湃OS,vivo OriginOS 等,请自行参考并在系统设置中操作相关选项
#### 部分选项名称和入口在不同OS上可能略有差异,但基本类似。

---

### 🚧 待优化方向与注意事项
欢迎各位大神针对以下方向进行优化:
* [ ] **距离判断**:目前收到推送直接触发,不判断所在地与震中的距离。
* [ ] **烈度测算**:目前无法进行震波到达倒计时及本地烈度测算。
* [ ] **地图功能**:目前没有内置显示震中位置的地图功能。
* [ ] ......

---

## 🙏 特别鸣谢

本项目的数据源与灵感离不开以下开源项目与无私服务的支持:

* **[Wolfx Project](https://wolfx.jp/)**:为本项目提供了稳定、快速且无私的地震预警 WebSocket API 转发服务。
* **[kanameishi 要石](https://github.com/Lipomoea/kanameishi)**:为本项目的开发与数据源接入提供了优秀的参考与灵感。(要石 是一个电脑版的地震预警软件,非常推荐在电脑端安装)

---

## ⚠️ 免责声明

1. **个人业余项目**:本项目为个人出于兴趣和防灾需求开发的非商业化测试软件。本人非专业安卓开发工程师,软件开发经验有限。应用在实际运行中可能存在 Bug 等问题,仅供**日常辅助参考与测试使用**,如有不完善之处请多海涵。
2. **第三方服务稳定性**:本应用的数据强依赖于 [Wolfx Project] 提供的第三方 API 接口。对于因网络波动、您的本地网络环境、第三方接口异常等原因导致的预警延迟、断线或接收失败,开发者无法控制,亦无法提供任何全天候的稳定性保证。
3. **预警准确性局限**:地震预警(EEW)是一项极其复杂的科学与工程系统。本应用展示的所有预警信息,均直接客观地转发自各地震监测发布机构(如中国地震台网、台湾地区中央气象署等)的原始测定报文。受限于现代地震台网的观测密度与科学算法的物理极限,**预警信息不可避免地会存在误差、误报、漏报或与最终测定结果不符的情况。**
4. **软件后台运行稳定性**:尽管开发过程以尽量确保软件能在手机后台保活,并做出配置说明。由于各品牌手机OS处理应用后台进程的逻辑不同,因此无法保证在所有手机上都能持久后台保活。如遇到应用无法保活问题,请务必检查是否依照配置说明正确设置,或与您的手机品牌方联系了解或反馈应用后台保活问题。
4. **免责条款**:请务必**不要**将本应用作为您生命和财产安全的唯一依赖手段。在收到预警警报时,请结合您身边的实际震感与环境迅速做出合理的避险判断。**对于使用或无法使用本软件而导致的任何直接或间接损失(包括但不限于人身伤害、财产损失、恐慌等),开发者不承担任何形式的法律与经济责任。** 使用本软件即代表您已知晓并同意本免责声明的全部内容。