1. 获取文件的完全路径
在头文件添加下列声明:IMPORT_C TInt CompleteWithAppPath( TDes& aFileName);TFileName filename(_L("RETROBLASTER.MBM"));CompleteWithAppPath(filename );
2. 获取当前设备显示方式(就是获取设备的色深)
使用的头文件:#include <eikenv.h>在任何VIEW视图代码里面:TDisplayMode displayMode = iEikonEnv->ScreenDevice()->DisplayMode();
3. 获取当前系统时间(一般用于游戏开发,计算2祯之间的时间差)
TTime currentTime;currentTime.HomeTime();TInt64 currentTick = currentTime.Int64();
4. 强制让程序从前台转到后台
TApaTaskList tasklist(iCoeEnv->WsSession());TApaTask task(tasklist.FindApp(TUid::Uid(填入你项目的UID))); task.SendToBackground();
5. 显示中文汉字(2种方法)
1) 在RSS资源文件里面定义RESOURCE TBUF64 r_example_view_title { buf ="新年快乐";}然后将其用WORD转换成UTF8编码,在此RSS文件头部添加CHARACTER_SETUTF8,否则无法编译,然后在程序里面调用,就能显示中文了。2) 用系统CcnvCharacterSetConverterAPI来转换CCnvCharacterSetConverter*converter=CCnvCharacterSetConverter::NewLC();if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,iEikonEnv->FsSession())!=CCnvCharacterSetConverter::EAvailable)User::Leave(KErrNotSupported); TText8 *str = (TText8*)"新年快乐"; TIntstate=CCnvCharacterSetConverter::KStateDefault; TPtrC8 source( str );iInfoText = HBufC::NewL( source.Length() ); TPtr16 ptr =iInfoText->Des(); if(CCnvCharacterSetConverter::EErrorIllFormedInput== converter->ConvertToUnicode(ptr, source, state))User::Leave(KErrArgument); //Leave if error inconversion.CleanupStack::PopAndDestroy(); //clean forconverter随后你就可以Draw出中文字体了,前提是你设备内有中文字库
6.获取IMEI串号
#include <plpvariant.h>void DeviceUtils::GetImei(TDes&aImei){#ifndef __WINS__ //真实设备 // This only works on target machineTPlpVariantMachineId imei; PlpVariant::GetMachineIdL(imei);aImei.Copy(imei);#else //模拟器 // Return a fake IMEI when working onemulator _LIT(KEmulatorImei, "000000000000000");aImei.Copy(KEmulatorImei);#endif}
7..震动
用CvibraControl API,6.1的机器上没VibraCtrl.lib和VibraCtrl.DLL,从N-GAGE机器上COPY一份就行。模拟器上直接COPY N-GAGE SDK里面的。7.0的SDK可以直接使用
在头文件添加下列声明:IMPORT_C TInt CompleteWithAppPath( TDes& aFileName);TFileName filename(_L("RETROBLASTER.MBM"));CompleteWithAppPath(filename );
2. 获取当前设备显示方式(就是获取设备的色深)
使用的头文件:#include <eikenv.h>在任何VIEW视图代码里面:TDisplayMode displayMode = iEikonEnv->ScreenDevice()->DisplayMode();
3. 获取当前系统时间(一般用于游戏开发,计算2祯之间的时间差)
TTime currentTime;currentTime.HomeTime();TInt64 currentTick = currentTime.Int64();
4. 强制让程序从前台转到后台
TApaTaskList tasklist(iCoeEnv->WsSession());TApaTask task(tasklist.FindApp(TUid::Uid(填入你项目的UID))); task.SendToBackground();
5. 显示中文汉字(2种方法)
1) 在RSS资源文件里面定义RESOURCE TBUF64 r_example_view_title { buf ="新年快乐";}然后将其用WORD转换成UTF8编码,在此RSS文件头部添加CHARACTER_SETUTF8,否则无法编译,然后在程序里面调用,就能显示中文了。2) 用系统CcnvCharacterSetConverterAPI来转换CCnvCharacterSetConverter*converter=CCnvCharacterSetConverter::NewLC();if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,iEikonEnv->FsSession())!=CCnvCharacterSetConverter::EAvailable)User::Leave(KErrNotSupported); TText8 *str = (TText8*)"新年快乐"; TIntstate=CCnvCharacterSetConverter::KStateDefault; TPtrC8 source( str );iInfoText = HBufC::NewL( source.Length() ); TPtr16 ptr =iInfoText->Des(); if(CCnvCharacterSetConverter::EErrorIllFormedInput== converter->ConvertToUnicode(ptr, source, state))User::Leave(KErrArgument); //Leave if error inconversion.CleanupStack::PopAndDestroy(); //clean forconverter随后你就可以Draw出中文字体了,前提是你设备内有中文字库
6.获取IMEI串号
#include <plpvariant.h>void DeviceUtils::GetImei(TDes&aImei){#ifndef __WINS__ //真实设备 // This only works on target machineTPlpVariantMachineId imei; PlpVariant::GetMachineIdL(imei);aImei.Copy(imei);#else //模拟器 // Return a fake IMEI when working onemulator _LIT(KEmulatorImei, "000000000000000");aImei.Copy(KEmulatorImei);#endif}
7..震动
用CvibraControl API,6.1的机器上没VibraCtrl.lib和VibraCtrl.DLL,从N-GAGE机器上COPY一份就行。模拟器上直接COPY N-GAGE SDK里面的。7.0的SDK可以直接使用