please google 'midlet-push' for detail.
其他工程调用j2me工程的问题:数据传递,动态启动一个j2me工程。
以下是j2me工程 中jad文件中需加入的code,目的是静态注册目标MIDlet,以供其他程序通过socket方式使其启动。
1)MIDlet-Push-1: socket://:4567, MainMIDlet, *
2)MIDlet-Permissions: javax.microedition.io.PushRegistry,javax.microedition.io.Connector.socket
调用程序这里为 Symbian c++ 目标代码如下:
这样在调用了connectL方法的时候就会自动的启动j2me工程了。
当然,这个j2me工程可以位于同一个symbian 平台(本机),也可以位于不同的symbian 系统上(其他机器)。
这样的确可以从symbian c++启动一个 j2me程序,但是还有一些问题,
我这样写后,c++程序只要调用了这个connectL的时候,的确是启动了j2me程序,但是c++
程序本身却关闭了,我暂时找不到原因,我不希望c++和j2me程序同事运行,请大家帮忙解决。
其他工程调用j2me工程的问题:数据传递,动态启动一个j2me工程。
以下是j2me工程 中jad文件中需加入的code,目的是静态注册目标MIDlet,以供其他程序通过socket方式使其启动。
1)MIDlet-Push-1: socket://:4567, MainMIDlet, *
2)MIDlet-Permissions: javax.microedition.io.PushRegistry,javax.microedition.io.Connector.socket
调用程序这里为 Symbian c++ 目标代码如下:
void CLocalIPgAppUi::connectL()
{
TInt8 err = EFalse;
RSocketServ ss;
RSocket sock;
TRequestStatus status;
err = ss.Connect();
CleanupClosePushL(ss);
err = sock.Open(ss,KAfInet,KSockStream,KProtocolInetTcp);
CleanupClosePushL(sock);
TInetAddr destAddr;
destAddr.SetFamily(KAfInet);
destAddr.SetPort(4567);
//destAddr.SetAddress(INET_ADDR(152,25,45,8));//调用152.25.45.8 这个ip上的目标程序。
destAddr.SetAddress(KInetAddrLoop);//127.0.0.1
sock.Connect(destAddr,status);
}
这样在调用了connectL方法的时候就会自动的启动j2me工程了。
当然,这个j2me工程可以位于同一个symbian 平台(本机),也可以位于不同的symbian 系统上(其他机器)。
这样的确可以从symbian c++启动一个 j2me程序,但是还有一些问题,
我这样写后,c++程序只要调用了这个connectL的时候,的确是启动了j2me程序,但是c++
程序本身却关闭了,我暂时找不到原因,我不希望c++和j2me程序同事运行,请大家帮忙解决。