WEB开发网
开发学院手机开发Symbian 开发 Symbian 启动J2ME的应用程序 阅读

Symbian 启动J2ME的应用程序

 2010-04-11 22:03:00 来源:WEB开发网   
核心提示:在Symbian下启动J2ME的应用程序一直是大家热烈讨论的问题.因为J2ME在S60上变态的安装过程.以及J2ME莫名其妙的标识全球唯一的特性.使本应该简单的问题变态了.在S60上应用程序是通过UID来作为全球唯一标识的.这样带来的好处是什么呢.我们可以通个UID很快定位到我们需要的程序.并且在安装的过程中,安装程序

在Symbian下启动J2ME的应用程序一直是大家热烈讨论的问题.

因为J2ME在S60上变态的安装过程.以及J2ME莫名其妙的标识全球唯一的特性.

使本应该简单的问题变态了.

在S60上应用程序是通过UID来作为全球唯一标识的.

这样带来的好处是什么呢.我们可以通个UID很快定位到我们需要的程序.

并且在安装的过程中,安装程序也原样使用了UID.

但是在安装J2ME的时候.安装程序会给J2ME随机分配一个UID.

老天保佑的事.这个UID在本机上是唯一的.

即然这个UID是唯一那我们能不能通过这个UID去启动程序呢.

这么美好的想法我们试试吧.

#include

void CLaunchJ2METestAppUi::GetAllApp()

{

TApaAppInfo appInfo;

RApaLsSession apaSession;

User::LeaveIfError( apaSession.Connect() );

CleanupClosePushL( apaSession );

User::LeaveIfError( apaSession.GetAllApps() );

//枚举所有的应用程序

while ( apaSession.GetNextApp( appInfo ) == KErrNone )

{

if(appInfo.iFullName.Right(8).CompareF(_L(".fakeapp")) == 0)

{

//查找所有的JAR的应用程序.

//JAR的应用都是以.fakeapp后缀结尾

if(appInfo.iCaption.FindF(_L("x8D2Ax98DFx86C7")) != -1)

{

//查找需要启动的应用程序的名字,取得对应的ID

iMIDlet = appInfo.iUid;

break;

}

}

}

TThreadId threadId;

//用UID启动应用程序

TInt err = apaSession.StartDocument(_L(""), iMIDlet, threadId);

CleanupStack::PopAndDestroy(); // close apaSession

}

以上代码在N95,6120,5320上测试通过

Tags:Symbian 启动 JME

编辑录入:coldstar [复制链接] [打 印]
赞助商链接