每个TuanjieRenderService
对应一个 Service 端的包,用包名进行识别。
public static TuanjieRenderService init(Context context, String servicePkgName)
在 Client 端创建一个管理servicePkgName
Service端连接的TuanjieRenderService
,并返回创建的TuanjieRenderService
。若对应包名的TuanjieRenderService
已存在,则不会重新创建并返回上一次创建的结果。若创建新的TuanjieRenderService
创建后不会自动调用bind
函数连接到服务端。
context
为 Client 端对应的context
,例如Activity
的context
。
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()
获得客户端包名。