From 13a2bc5c00893c43c48526474263edbd64274a9a Mon Sep 17 00:00:00 2001 From: peng <704047449@qq.com> Date: Tue, 16 Sep 2025 17:50:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=BAdialogFragment=E5=BC=B9?= =?UTF-8?q?=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network/NetworkStateTestActivity.java | 73 --------- .../com/ismart/ib86/feature/network/README.md | 151 ------------------ .../feature/network/TestBSSIDActivity.java | 30 ---- app/src/main/res/raw/README.md | 36 ----- 4 files changed, 290 deletions(-) delete mode 100644 app/src/main/java/com/ismart/ib86/feature/network/NetworkStateTestActivity.java delete mode 100644 app/src/main/java/com/ismart/ib86/feature/network/README.md delete mode 100644 app/src/main/java/com/ismart/ib86/feature/network/TestBSSIDActivity.java delete mode 100644 app/src/main/res/raw/README.md diff --git a/app/src/main/java/com/ismart/ib86/feature/network/NetworkStateTestActivity.java b/app/src/main/java/com/ismart/ib86/feature/network/NetworkStateTestActivity.java deleted file mode 100644 index 09fa2ab..0000000 --- a/app/src/main/java/com/ismart/ib86/feature/network/NetworkStateTestActivity.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.ismart.ib86.feature.network; - -import android.app.Activity; -import android.os.Bundle; -import android.util.Log; -import android.widget.Button; -import android.widget.TextView; -import com.ismart.ib86.app.R; -import com.ismart.ib86.common.notification.NotificationType; - -/** - * 网络状态监听器测试Activity - */ -public class NetworkStateTestActivity extends Activity { - private static final String TAG = "NetworkStateTestActivity"; - - private NetworkStateManager networkStateManager; - private TextView tvNetworkStatus; - private Button btnShowNotification; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_network_state_test); - - initializeViews(); - initializeNetworkStateManager(); - } - - private void initializeViews() { - tvNetworkStatus = findViewById(R.id.tv_network_status); - btnShowNotification = findViewById(R.id.btn_show_notification); - - btnShowNotification.setOnClickListener(v -> { - if (networkStateManager != null) { - networkStateManager.showNotification( - com.ismart.ib86.common.notification.NotificationType.NETWORK_LOST, - "这是一个测试通知消息", - android.R.drawable.ic_dialog_alert, - 3 - ); - } - }); - } - - private void initializeNetworkStateManager() { - networkStateManager = new NetworkStateManager(this); - networkStateManager.initialize(); - - // 更新网络状态显示 - NetworkState currentState = networkStateManager.getCurrentNetworkState(); - updateNetworkStatusDisplay(currentState); - - // 设置网络状态变化监听 - // 注意:NetworkStateManager已经在内部设置了回调,这里只是为了更新UI显示 - } - - private void updateNetworkStatusDisplay(NetworkState state) { - runOnUiThread(() -> { - String statusText = "当前网络状态: " + state.name(); - tvNetworkStatus.setText(statusText); - Log.d(TAG, statusText); - }); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (networkStateManager != null) { - networkStateManager.destroy(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/ismart/ib86/feature/network/README.md b/app/src/main/java/com/ismart/ib86/feature/network/README.md deleted file mode 100644 index 2e5c3dc..0000000 --- a/app/src/main/java/com/ismart/ib86/feature/network/README.md +++ /dev/null @@ -1,151 +0,0 @@ -# 网络状态监听器使用说明 - -## 概述 - -网络状态监听器是一个用于监控Android设备网络连接状态的组件。当设备失去网络连接时,它能够自动显示提示信息,并在网络恢复时自动隐藏提示。 - -## 主要功能 - -1. 实时监听设备的网络连接状态 -2. 在网络断开时显示提示页面 -3. 在网络连接时显示提示页面 -4. 网络恢复时自动隐藏提示页面 -5. 支持多种网络类型检测(WiFi、移动网络、以太网) -6. 支持自定义提示内容和图标 -7. 支持自定义页面显示持续时间 -8. 支持多种类型的提示页面(网络状态、电量、配置等) - -## 核心组件 - -### NetworkState -网络状态枚举,包含以下值: -- NO_NETWORK:无网络连接 -- MOBILE_CONNECTED:移动网络连接 -- WIFI_CONNECTED:WiFi连接 -- ETHERNET_CONNECTED:以太网连接 - -### NotificationType -通知类型枚举,包含以下值: -- NETWORK_LOST:网络断开 -- NETWORK_CONNECTED:网络连接 -- NETWORK_CONFIG:网络配置 -- BATTERY_LOW:电量低 -- OTHER:其他类型 - -> 注意:NotificationType现在位于`com.ismart.ib86.common.notification`包中,而不是网络包中。 - -### NetworkStateCallback -网络状态变化回调接口,包含以下方法: -- onNetworkStateChanged(NetworkState state):网络状态变化回调 -- onNetworkLost():网络断开回调 -- onNetworkAvailable():网络可用回调 - -### NetworkStateMonitor -核心网络状态监听器,负责监听网络状态变化。 - -### NetworkStateManager -网络状态管理器,负责状态判断和提示显示。 - -### CommonNotificationActivity -通用提示页面Activity,用于显示各种类型的提示信息。 - -> 注意:CommonNotificationActivity现在位于`com.ismart.ib86.common.notification`包中,而不是网络包中。 - -### NotificationManager -通知管理器,专门负责通知的显示和隐藏。 - -> 注意:NotificationManager现在位于`com.ismart.ib86.common.notification`包中,而不是网络包中。 - -支持的参数包括: -- 图标(icon):显示在通知页面的图标 -- 提醒文字(message):显示在通知页面的文字信息 -- MP3播放文件路径(soundPath):自定义提示音文件路径 -- 持续时间(duration):通知页面显示的持续时间(秒) - -## 音频文件存放位置 - -1. **应用内嵌音效**:存放在`res/raw/`目录下,作为应用资源的一部分 -2. **自定义音效**:可以存放在外部存储目录中,如`/sdcard/`目录下 - -每种通知类型都有默认的音效文件: -- 网络断开:`res/raw/network_lost_notification.wav` -- 网络连接:`res/raw/notification_network_connected.wav` -- 网络配置:`res/raw/network_config_notification.wav` -- 电量低:`res/raw/battery_low_notification.wav` -- 其他:`res/raw/default_notification.wav` - -## 使用方法 - -### 1. 初始化网络状态管理器 - -```java -NetworkStateManager networkStateManager = new NetworkStateManager(context); -networkStateManager.initialize(); -``` - -### 2. 显示自定义通知 - -```java -// 基本用法 -networkStateManager.showNotification( - com.ismart.ib86.common.notification.NotificationType.NETWORK_LOST, - "设备已断开网络连接", - android.R.drawable.ic_dialog_alert, - 5 -); - -// 带自定义音效的用法 -networkStateManager.showNotification( - com.ismart.ib86.common.notification.NotificationType.NETWORK_LOST, - "设备已断开网络连接", - android.R.drawable.ic_dialog_alert, - 5, - "/sdcard/notification.mp3" -); -``` - -### 3. 销毁网络状态管理器 - -```java -networkStateManager.destroy(); -``` - -## 集成到项目 - -1. 确保AndroidManifest.xml中已添加必要的权限: -```xml - - -``` - -2. 在AndroidManifest.xml中注册Activity: -```xml - -``` - -## 注意事项 - -1. 需要在Activity或Application的生命周期适当时机调用initialize()和destroy()方法 -2. NetworkStateManager会自动处理网络状态变化,无需手动干预 -3. 通知页面会在指定时间后自动关闭,也可以通过hideNotification()方法手动关闭 -4. 为避免内存泄漏,请确保在适当时机调用destroy()方法 -5. 修复了在应用进入后台时通知被意外关闭的问题,现在通知会在指定时间内持续显示 - -## 测试 - -项目包含了NetworkStateMonitorTest单元测试,可以验证基本功能的正确性。 - -## 更新日志 - -### 2025-09-15 -- 修复了当应用进入后台时通知被意外关闭的问题 -- 网络状态监听现在会在应用后台运行时持续工作 -- 优化了通知显示状态的管理机制 - -### 2025-09-16 -- 新增网络连接通知功能 -- 添加NETWORK_CONNECTED通知类型 -- 网络连接时会显示5秒的通知,然后自动隐藏 \ No newline at end of file diff --git a/app/src/main/java/com/ismart/ib86/feature/network/TestBSSIDActivity.java b/app/src/main/java/com/ismart/ib86/feature/network/TestBSSIDActivity.java deleted file mode 100644 index 4c2a98f..0000000 --- a/app/src/main/java/com/ismart/ib86/feature/network/TestBSSIDActivity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.ismart.ib86.feature.network; - -import android.app.Activity; -import android.os.Bundle; -import android.util.Log; - -/** - * 测试BSSID功能的Activity - */ -public class TestBSSIDActivity extends Activity { - private static final String TAG = "TestBSSIDActivity"; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - Log.i(TAG, "=== 开始测试BSSID功能 ==="); - - // 测试格式化WiFi扫描结果(包含BSSID) - TestWiFiScanResultWithBSSID.testFormatScanResultWithBSSID(); - - // 测试发送WiFi扫描结果(包含BSSID) - TestWiFiScanResultWithBSSID.testSendScanResultWithBSSID(); - - Log.i(TAG, "=== BSSID功能测试完成 ==="); - - // 结束Activity - finish(); - } -} \ No newline at end of file diff --git a/app/src/main/res/raw/README.md b/app/src/main/res/raw/README.md deleted file mode 100644 index e687a76..0000000 --- a/app/src/main/res/raw/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# 音频资源说明 - -## 目录结构 - -``` -res/raw/ -├── battery_low_notification.wav # 电量低提示音 -├── default_notification.wav # 默认提示音 -├── network_config_notification.wav # 网络配置提示音 -└── network_lost_notification.wav # 网络断开提示音 -``` - -## 使用说明 - -### 1. 应用内嵌音效 -将音频文件放在`res/raw/`目录下,构建系统会自动将其编译到APK中。 -- 文件名应使用小写字母和下划线 -- 支持的格式:MP3, WAV, OGG等 - -### 2. 自定义音效 -支持从外部存储加载自定义音效文件: -- 路径格式:`/sdcard/your_sound.wav` -- 需要相应的存储权限 - -### 3. 默认音效映射 -每种通知类型都有对应的默认音效: -- NETWORK_LOST → network_lost_notification.wav -- NETWORK_CONFIG → network_config_notification.wav -- BATTERY_LOW → battery_low_notification.wav -- OTHER → default_notification.wav - -## 注意事项 - -1. 音频文件应尽量小,以减少APK体积 -2. 建议使用WAV格式以获得较好的兼容性 -3. 音频文件命名应遵循Android资源命名规范(小写字母、数字、下划线) \ No newline at end of file