【发布时间】:2017-02-10 09:51:57
【问题描述】:
我有 2 个独立的 Android 应用 (apk)。
App 1 在其内部创建SurfaceView,并应为其他应用提供AIDL 方法,以便为此类SurfaceView 获取SurfaceHolder 的实例。所以其他应用程序将能够在该视图上绘图,显示在应用程序编号 1 内。
我能够通过aidl轻松地传输Surface本身,因为它实现了Parcelable接口。
// IMainService.aidl
package com.commonsware.cwac.preso.demo.service;
import android.view.Surface;
interface IMainService {
Surface getSurf();
}
但是第 3 方 SDK 需要 SurfaceHolder 才能使用。所以问题是——如何为给定的Surface 实例创建SurfaceHolder,或者如何通过AIDL 传输SurfaceHolder。是否有任何示例说明如何为SurfaceHolder 实现 Parcelable?
我的用例(如果有的话):应用程序 1 以 Service 开头,并在演示屏幕上绘制 UI。我需要一种方法让另一个应用程序通过诺基亚 Here Mobile SDK 在应用程序 1 中显示导航数据。我需要 SurfaceHolder 才能使用 this api。
任何帮助将不胜感激。
【问题讨论】:
-
尝试扩展 SurfaceHolder 类并实现 parcelabale
-
谢谢,但是 SurfaceHolder 是一个接口......所以......我们怎样才能使它可包裹?或者如何从给定的表面创建它?
标签: android surfaceview here-api aidl surfaceholder