package com.narutohuo.xindazhou.ble

import android.content.Context
import com.narutohuo.xindazhou.ble.api.IBLE
import com.narutohuo.xindazhou.ble.impl.BLEImpl

/**
 * BLE服务工厂类
 * 
 * 提供统一的获取BLE服务实例的方式
 * 支持单例模式和依赖注入
 */
object BLEKit {
    
    /**
     * 创建或获取BLE服务实例（单例）
     * 
     * @param context 上下文
     * @return IBLE实例（单例）
     */
    fun create(context: Context): IBLE {
        return BLEImpl.getInstance(context)
    }
    
    /**
     * 检查BLE服务是否已初始化
     * 
     * @return 如果已初始化返回true，否则返回false
     */
    fun isInitialized(): Boolean {
        // 通过反射或内部方法检查INSTANCE是否已初始化
        // 注意：这是一个简化的实现，实际使用时建议通过依赖注入管理
        return try {
            val field = BLEImpl::class.java.getDeclaredField("INSTANCE")
            field.isAccessible = true
            field.get(null) != null
        } catch (e: Exception) {
            false
        }
    }
}

