Version: 1.3
语言 : 中文
Render As Service -- Java API
TuanjieView

TuanjieRenderService

每个TuanjieRenderService对应一个 Service 端的包,用包名进行识别。

init

public static TuanjieRenderService init(Context context, String servicePkgName)

在 Client 端创建一个管理servicePkgName Service端连接的TuanjieRenderService,并返回创建的TuanjieRenderService。若对应包名的TuanjieRenderService已存在,则不会重新创建并返回上一次创建的结果。若创建新的TuanjieRenderService创建后不会自动调用bind函数连接到服务端。

context为 Client 端对应的context,例如Activitycontext

servicePkgName为对应 Service 端的包名,若为""或null,则使用context.getPackageName()作为 Service 端包名。

public static TuanjieRenderService init(Context context)

等同于 init(context, null)

get

public static TuanjieRenderService get(String servicePkgName)

servicePkgName为待获得 Service 端包名。返回已经创建的所有TuanjieRenderService中对应包名的TuanjieRenderService,若不存在则返回null。

public static TuanjieRenderService get(Context context)

等同于get(context.getPackageName())

成员变量

enableAutoReconnect

public boolean enableAutoReconnect = true;

设置为 true 时,若 Service 端意外断开连接,在调用onServiceDisconnected后,Client 端自动重连。

内部接口

SendMessageCallback

public interface SendMessageCallback {  
String onClientRecvMessage(String msg);  
   void onClientRecvMessageWithNoRet(String msg);  
   void onClientRecvBinaryData(byte [] data);  
}

用于接收从 C# 脚本中向 Java Client 端传递的消息。

  • onClientRecvMessage
   String onClientRecvMessage(String msg);

当 C# 脚本调用 RenderAsService.SendMessageToClient时,对应 Client 触发onClientRecvMessage,并将结果返回给 C# 脚本。

  • onClientRecvMessageWithNoRet
   void onClientRecvMessageWithNoRet(String msg);

当 C# 调用 RenderAsService.SendMessageToClientImmediately 时,对应Client 端触发上述回调。

  • onClientRecvBinaryData
   void onClientRecvBinaryData(byte [] data);

当 C# 调用 RenderAsService.SendBinaryDataToClient 时,对应 Client 端触发上述回调。

Callback

public interface Callback {  
   void onServiceConnected();  
   void onServiceDisconnected();  
   void onServiceStartRenderView(int viewHashCode);  
}
  • onServiceConnected
   void onServiceConnected();

在 Client 与 Service 的连接建立时调用。

  • onServiceDisconnected
   void onServiceDisconnected();

当与 Service 的连接丢失时调用。

  • onServiceStartRenderView
   void onServiceStartRenderView(int viewHashCode);

当 Service 开始渲染tuanjieView时调用。

viewHashCode 是将要开始渲染的tuanjieView的唯一标识符。

成员函数

ensureStarted

public boolean ensureStarted()

使用安卓的bindService与对应 Service 端建立连接。

ensureStopped

public boolean ensureStopped()

使用安卓的unbindService断开与 Service 端的连接。同时如果没有其他 Client 连接到Service,则 Service 将退出。

setSendMessageCallback

public void setSendMessageCallback(SendMessageCallback callback)

TuanjieRenderService设置对应的SendMessageCallback接口,接收由 C# 端回传的数据。接口说明见SendMessageCallbac

addCallback

public void addCallback(Callback callback)

TuanjieRenderService中添加 Service 状态相关回调函数,接口说明见Callback

callback是将要添加的Callback接口。

removeCallback

public void removeCallback(Callback callback)

TuanjieRenderService中移除 Service 状态相关回调函数。

callback是将要被移除的Callback接口。

c2sSendMessage

public void c2sSendMessage(String objectName, String methodName, String messageStr) throws RemoteException

调用对应 Service 端场景中物体脚本的对应方法。

objectName是场景中物体的名称;methodName是物体的脚本中方法的名称;messageStr是传入该方法的参数。

c2sSendBinaryData

public void c2sSendBinaryData(String objectName, String methodName, byte [] data) throws RemoteException

c2sSendMessage功能相同,但是传入参数是字节序列。

pause

public void pause()

暂停 Service 渲染服务。

resume

public void resume()

恢复 Service 渲染服务。

getClientPkgName

public String getClientPkgName()

获得客户端包名。

Render As Service -- Java API
TuanjieView