# Module: com.Com — UI 層 / OEM 機型

`com.Com`（67 檔）是 Android UI 層：入口 Activity、主 Activity 基類、以及按 OEM 機型派生的整套界面。

## Responsibilities

- App 啟動與登錄（`SplashActivity`）
- 主掃描界面骨架（`BaseActivity`）
- OEM 機型界面派生（Land / Port / Lianmed / ccgc / Anor）
- 第三方 App 集成入口（`ThirdPartyManageActivity`，exported）
- 崩潰處理與桌面返回

## Key Files

- `application/MyApplication.java` — Application：初始化 xUtils、3 個 SQLite（UserInfo / OperatorAuth / PatientInfo）、crash handler（記錄後重啟 Launcher）、`TaskManager` 後台線程、時間/日期系統設置
- `handprobe/SplashActivity.java` — LAUNCHER：用戶登錄（spinner 選用戶 + 密碼 + 自動登錄 + 緊急按鈕）、DICOM 服務啟動、機型路由
- `handprobe/BaseActivity.java` — 主 Activity 基類：持有 `mUltrasysApp`，消息處理（`AMSG_CONNECT_CHANGE` 等）
- `handprobe/LandFeature/LandActivity.java` — 橫屏機型
- `handprobe/LandQ6Feature/` — Q6 橫屏系列：`LandQ6Activity`、`LandQ6MidActivity`、`LandQ62Activity`、`LandQ6BMVActivity`、`Q62SonoStarActivity`（SonoStar OEM）、`SSKeydataHandle`、`HKPKeyboardAPP`（硬體鍵盤）
- `handprobe/PortQ61Feature/PortQ61Activity.java` — 便攜 Q61
- `handprobe/LianmedFeature/LianmedActivity.java` — Lianmed OEM
- `handprobe/ccgc/LandCCGCActivity.java` — ccgc OEM
- `handprobe/AnorActivity.java` + `UI/AnorTopFuncFrag.java`/`AnorBottomFuncFrag.java` — Anor 機型
- `handprobe/PortActivity.java` — 便攜基礎版
- `handprobe/ThirdPartyManageActivity.java` — 第三方 App 調起接口（授權結果回傳）
- `handprobe/FsActivity.java`、`CrashActivity.java`、`MyInstalledReceiver.java` — 輔助

## OEM 白牌機制

`MyApplication` 定義 18 個 OEM ID 常量（實測源碼）：

```
OEM_YOUKEY_ID=1  OEM_ESAOTE_ID=2  OEM_INTEGRA_ID=3  OEM_BMV_ID=4
OEM_VIS_ID=6     OEM_D8NOTEBOOTK_ID=7  OEM_SMART_ID=8  OEM_ECCOSCAN_ID=9
OEM_CCOSON_ID=10 OEM_IVET_ID=11  OEM_HBKQ_ID=12  OEM_ECHONECT_ID=13
OEM_FASVET_ID=14 OEM_DRAMINSKIVET_ID=15  OEM_SONOSTAR_ID=16  OEM_OPU_ID=17
OEM_MADINA_ID=18 OEM_BD_ID=19
```

機型行為差異由資源開關控制，例如獸醫模式：`R.string.def_vet` 為 `"on"` 時 `GetPatientMng()` 返回 `HAnimalMng`、`getExamByID()` 查 `AnimalExam`。

## Dependencies

- **Used by:** manifest（`SplashActivity` 為 LAUNCHER；`BaseActivity`/`LandActivity`/… 全部 `exported=false` 除 `SplashActivity` 與 `ThirdPartyManageActivity`）
- **Uses:** `handprobe.application.*`、`handprobe.components.*`、`kernel.*`、`jni.*`、`UI.*`

## Notable Patterns / Gotchas

- 全部主界面 `screenOrientation="landscape"` 且 `configChanges` 全開（旋轉不重建）
- `ThirdPartyManageActivity` 是唯一顯式 exported 的 Activity（`Theme.Translucent`），支持第三方 App 嵌入超聲功能——`MyApplication.returnThirdParty()` 回傳結果
- `LandQ62Activity`/`LandQ6Activity` 帶 `sharedUserId="android.uid.system"`（需系統簽名安裝——典型 OEM 預裝設備）
- Crash handler 會 `finish()` 所有 Activity 並啟動 `com.android.launcher3`，醫療設備場景下防止卡死在崩潰畫面
