#ifndef DEVICE_MANAGER_H #define DEVICE_MANAGER_H #include class DeviceManager { public: static DeviceManager& GetInstance(); // 获取设备MAC地址 std::string GetMACAddress(); // 保存设备Token到NVS bool SaveDeviceToken(const std::string& token); // 从NVS读取设备Token std::string GetDeviceToken(); // 清除设备Token(解绑) bool ClearDeviceToken(); // 设备绑定流程 bool BindDevice(const std::string& binding_code, const std::string& device_name = ""); // 验证设备状态 bool VerifyDevice(); // 歌单相关 std::string GetFavorites(); std::string GetUserPlaylists(); // 检查设备是否已绑定 bool IsDeviceBound(); // 获取绑定的用户名 std::string GetBoundUsername(); private: DeviceManager(); ~DeviceManager(); // 禁止拷贝 DeviceManager(const DeviceManager&) = delete; DeviceManager& operator=(const DeviceManager&) = delete; std::string mac_address_; std::string device_token_; std::string bound_username_; bool is_bound_; // NVS命名空间 static constexpr const char* NVS_NAMESPACE = "device"; static constexpr const char* NVS_KEY_TOKEN = "token"; static constexpr const char* NVS_KEY_USERNAME = "username"; // 从NVS加载配置 void LoadFromNVS(); // 尝试从服务器获取 token(用于网页端绑定后自动同步) bool TryFetchTokenFromServer(); }; #endif // DEVICE_MANAGER_H