feat: 系统控制模块 - 硬件抽象层

新增:
- ScreenController 屏幕控制接口 + FiseScreenController 实现(ROM广播)
- NfcController NFC控制接口 + FiseNfcController 实现(sysfs读写)
- VibrationController 振动接口 + FiseVibrationController 实现(13种方案+音频)
- SystemStateMonitor 系统状态监听(电量、蓝牙状态广播)
- DeviceModule Hilt硬件抽象绑定
- 8个音频文件(res/raw/)
- AppEvent 新增4个系统状态事件

修改:
- MainActivity 注册 SystemStateMonitor
- HomeFragment 硬件验证demo(熄屏/振动/NFC/电量实时显示)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-04-27 13:50:25 +09:30
parent 5680613e86
commit c7ae11a574
22 changed files with 815 additions and 100 deletions

View File

@@ -0,0 +1,38 @@
package com.xiaoqu.watch.di
import com.xiaoqu.watch.device.nfc.FiseNfcController
import com.xiaoqu.watch.device.nfc.NfcController
import com.xiaoqu.watch.device.screen.FiseScreenController
import com.xiaoqu.watch.device.screen.ScreenController
import com.xiaoqu.watch.device.sensor.FiseVibrationController
import com.xiaoqu.watch.device.sensor.VibrationController
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
/**
* 硬件抽象层 Hilt 绑定模块
* 将接口绑定到 FISE ROM 实现类
* 换设备时只需修改此文件的绑定
*/
@Module
@InstallIn(SingletonComponent::class)
abstract class DeviceModule {
/** 屏幕控制FISE ROM 广播实现 */
@Binds
@Singleton
abstract fun bindScreenController(impl: FiseScreenController): ScreenController
/** NFC 控制FISE ROM sysfs 实现 */
@Binds
@Singleton
abstract fun bindNfcController(impl: FiseNfcController): NfcController
/** 振动控制:标准 Vibrator + MediaPlayer 实现 */
@Binds
@Singleton
abstract fun bindVibrationController(impl: FiseVibrationController): VibrationController
}