From e209f9f6406b7aec54fb4368be86f633848e8065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Tue, 21 Apr 2026 18:05:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(glass):=20=E4=BC=98=E5=8C=96GlassMedia?= =?UTF-8?q?ServiceHelper=E4=B8=AD=E7=9A=84=E5=AA=92=E4=BD=93=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将mediaService类型从Any改为IMediaServer接口类型 - 移除反射调用方式,直接使用接口方法调用 - 简化takePhoto、addPhotoCallback等方法的实现 - 直接访问maxZoomLevel和zoomLevel属性替代反射获取 - 提高代码可读性和类型安全性 - 减少运行时反射调用的性能开销 --- .../glass/helper/GlassMediaServiceHelper.kt | 38 ++++++------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/nova/brain/glass/helper/GlassMediaServiceHelper.kt b/app/src/main/java/com/nova/brain/glass/helper/GlassMediaServiceHelper.kt index 8a62b2e..4ee6c84 100644 --- a/app/src/main/java/com/nova/brain/glass/helper/GlassMediaServiceHelper.kt +++ b/app/src/main/java/com/nova/brain/glass/helper/GlassMediaServiceHelper.kt @@ -2,14 +2,15 @@ package com.nova.brain.glass.helper import android.view.Surface import com.rokid.security.glass3.open.sdk.GlassSdk +import com.rokid.security.system.server.media.IMediaServer import com.rokid.security.system.server.media.callback.ICameraSurfaceCallback import com.rokid.security.system.server.media.callback.PhotoFileCallback object GlassMediaServiceHelper { @Volatile - private var mediaService: Any? = null + private var mediaService: IMediaServer? = null - private fun service(): Any? { + private fun service(): IMediaServer? { val cached = mediaService if (cached != null) { return cached @@ -20,51 +21,34 @@ object GlassMediaServiceHelper { } fun takePhoto(resolution: Int, path: String) { - val service = service() ?: return - service.javaClass.getMethod("takePhoto", Int::class.javaPrimitiveType, String::class.java) - .invoke(service, resolution, path) + service()?.takePhoto(resolution, path) } fun addPhotoCallback(callback: PhotoFileCallback) { - val service = service() ?: return - service.javaClass.getMethod("addPhotoCallback", PhotoFileCallback::class.java) - .invoke(service, callback) + service()?.addPhotoCallback(callback) } fun removePhotoCallback(callback: PhotoFileCallback) { - val service = service() ?: return - service.javaClass.getMethod("removePhotoCallback", PhotoFileCallback::class.java) - .invoke(service, callback) + service()?.removePhotoCallback(callback) } fun startCameraShare(surface: Surface, callback: ICameraSurfaceCallback) { - val service = service() ?: return - service.javaClass.getMethod( - "startCameraShare", - Surface::class.java, - ICameraSurfaceCallback::class.java - ).invoke(service, surface, callback) + service()?.startCameraShare(surface, callback) } fun stopCameraShare(callback: ICameraSurfaceCallback) { - val service = service() ?: return - service.javaClass.getMethod("stopCameraShare", ICameraSurfaceCallback::class.java) - .invoke(service, callback) + service()?.stopCameraShare(callback) } fun getMaxZoomLevel(): Int { - val service = service() ?: return 0 - return (service.javaClass.getMethod("getMaxZoomLevel").invoke(service) as? Int) ?: 0 + return service()?.maxZoomLevel ?: 0 } fun getZoomLevel(): Int { - val service = service() ?: return 0 - return (service.javaClass.getMethod("getZoomLevel").invoke(service) as? Int) ?: 0 + return service()?.zoomLevel ?: 0 } fun zoomCamera(level: Int) { - val service = service() ?: return - service.javaClass.getMethod("zoomCamera", Int::class.javaPrimitiveType) - .invoke(service, level) + service()?.zoomCamera(level) } }