在线中文-在线在线ccc66-在线永久免费观看的毛片-在线永久免费观看的a站视频-久久精品最新免费国产成人-久久精品综合一区二区三区

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.bgl88.cn/bbs/index.asp)
--  Symbian開發(fā)  (http://www.bgl88.cn/bbs/list.asp?boardid=46)
----  Symbian 平臺技術(shù)開發(fā)技巧匯總  (http://www.bgl88.cn/bbs/dispbbs.asp?boardid=46&id=2047)

--  作者:wangxinxin
--  發(fā)布時間:2010-12-3 13:55:44
--  Symbian 平臺技術(shù)開發(fā)技巧匯總
問題一、如何枚舉出正在運(yùn)行的App

  結(jié)合RApaLsSession和TApaTaskList應(yīng)該可以做到.

  RApaLsSession:

  GetAppIcon()

  GetAppInfo()

  TApaTaskList:

  FindApp()

  問題二、從收件箱讀取彩信圖片

  mmslist實(shí)現(xiàn)了首先以listbox列表的形式列出了收件箱中的所有彩信,選擇某一條彩信后可以顯示出它的發(fā)送端號碼和彩信的文本信息;現(xiàn)在我想讓它顯示發(fā)送端號碼和彩信圖片(假設(shè)我的彩信都是圖片格式);請教兩位應(yīng)該怎么才能實(shí)現(xiàn)讀彩信圖片并顯示的功能。

  下面是讀彩信文本信息的代碼,你們參考一下:

  void CMmslController::GetMessageL( const TDesC& aItem,

  TDes& aMessageText ) const

  {

  //Read the message Uid from aItem

  TUint32 id = 0;

  TLex lexer( aItem );

  lexer.SkipSpace();

  TChar ch( lexer.Get() );

  while ( ( ch != ‘\\t’ ) && ( ch != 0 ) ) // Finding end of 1.st line

  {

  ch = lexer.Get();

  }

  lexer.SkipSpace();

  lexer.Val( id, EHex );

  if( iCurEntries->Find( id ) == KErrNotFound )

  {

  return;

  }

  CMsvEntry* msvEntry = iSession->GetEntryL( id );

  CleanupStack::PushL( msvEntry );

  const TMsvEntry& msgEntry = msvEntry->Entry();

  CBaseMtm* clientMtm = iMtmReg->NewMtmL( msgEntry.iMtm );

  CleanupStack::PushL( clientMtm );

  clientMtm->SwitchCurrentEntryL( msvEntry->EntryId() );

  // An instance of the TDesOverflow derived class used to suppress

  // the panic that would be generated if buffer length was exceeded

  // in calls to AppendFormat

  TOverrideOverFlow noOflo;

  // Text is located in iDescription field.

  aMessageText.AppendFormat( msgEntry.iDescription, &noOflo );

  //aMessageText.AppendFormat( msgEntry.iDetails );

  CleanupStack::PopAndDestroy( 2 ); // clientMtm, msvEntry

  }

  問題三、如何讓程序在安裝后自動運(yùn)行

  如何讓一個程序(或是一個server)在安裝后自動運(yùn)行于手機(jī)中,這是非常容易的,只需在你的PKG文件中,在包含你的app或exe文件的那行末尾加上“FR,RI”。

  “FR”表示“File Run”,而“RI”則表示“Run during Installation”。請注意,務(wù)必要先開始rsc,aif,mbm文件的安裝,然后才能是APP等(也就是在pkg文件的末尾進(jìn)行app的安裝)

  舉例:

  “\\Symbian.1\\Series60\\Epoc32\\release\\thumb\\urel\\MyApp.rsc” -

  “!:\\system\\apps\\MyApp\\MyApp.rsc”

  “\\Symbian.1\\Series60\\Epoc32\\release\\thumb\\urel\\MyApp_caption.rsc” -

  “!:\\system\\apps\\MyApp\\MyApp_caption.rsc”

  “\\Symbian.1\\Series60\\Epoc32\\release\\thumb\\urel\\MyApp.aif” -

  “!:\\system\\apps\\MyApp\\MyApp.aif”

  “\\Symbian.1\\Series60\\Epoc32\\release\\thumb\\urel\\MyApp.app” -

  “!:\\system\\apps\\MyApp\\MyApp.app”,FR,RI

  問題四、全面了解文件類型和從屬關(guān)系

  下圖顯示了在一個典型的Symbian程序中各文件的從屬關(guān)系。

  

  .hrh文件中包含所有要在.rss、.h和.cpp中使用的枚舉類型。它們主要使用在應(yīng)用程序的菜單、工具欄等地方,下面展示了一個典型的例子:

  //MyApp.hrh

  //

  enum{

  EMyAppCmdOpenFile = 0×6000,

  EMyAppCmdEdit,

  };

  按照慣例這些命令I(lǐng)D值的范圍應(yīng)該從0×6000開始向上。

  .rss文件中是資源文件,這些文件包括所有靜態(tài)字符串、按鈕、菜單和列表等的定義,都使用在應(yīng)用程序UI中。此外,Nokia Series 60向?qū)н可能生成一個.loc文件,這個文件同.rss文件很相似但只用于描述你程序中的靜態(tài)字符串,利用它你可以很容易的將程序變成多語言版本。

  .rsg是生成的資源文件。它們是在編譯時刻由資源編譯器產(chǎn)生的,.cpp文件將包含它們以便處理資源。

  .mbm是symbian位圖文件,它里面可以存儲幾個位圖。

  .mbg是在創(chuàng)建.mbm時生成的。這些文件一般包含在那些使用位圖的RSS文件中,一個mbg文件包括在.mbm中各位圖的ID。

  問題五、如何在網(wǎng)絡(luò)通訊中正確顯示中文

  1。經(jīng)過對照GB2312/GBK編碼表,在程序中定義_LIT8(KTest, “中文測試”);是GB2312/GBK編碼

  2。直接從輸入框取出的字符串,經(jīng)過按照byte分析并比較中文和unicode對照表,發(fā)現(xiàn)是UTF-16LE(Sixteen-bit UCS Transformation Format, little-endian byte order)編碼

  3,中文對服務(wù)器的傳輸建議統(tǒng)一處理成UTF8編碼進(jìn)行,從對話框獲得的也一樣處理,服務(wù)器需要對應(yīng)識別過來的字符串并做處理。

  問題六、如何動態(tài)更改CEikLabel 的text

  CEikLabel* iLabelStatus;

  …..

  iLabelStatus = new (ELeave) CEikLabel;

  iLabelStatus->SetContainerWindowL( *this );

  iLabelStatus->SetTextL( this->iStatusStr );

  ….

  //動態(tài)在這里更改

  iLabelStatus->SetTextL(iStatusStr);

  iLabelStatus->DrawNow();

  如果初始化時就無法顯示,請對照helloworld代碼檢查自己label是否設(shè)置正確;如果是進(jìn)度進(jìn)行中無法顯示,請檢查CActive是否正確執(zhí)行,單步DrawNow是否被正確調(diào)用。

  問題七、在listbox中怎么處理所選項(xiàng)的事件

  觸發(fā)事件并不是很復(fù)雜的事情,

  TKeyResponse CXXContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)

  {

  TInt code = aKeyEvent.iCode;

  switch(code)

  {

  // is navigator button pressed導(dǎo)航按鈕被按下時

  case EKeyOK:

  {

  // pass the key press event to view,

  // then view will pass it to ui class’s handler

  iXXView->ProcessListEvent(iListBox->CurrentItemIndex()) ;

  }

  return (EKeyWasConsumed);

  case EKeyLeftArrow :

  case EKeyRightArrow :

  return (EKeyWasConsumed);

  default:

  // Let Listbox take care of its key handling

  return iListBox->OfferKeyEventL(aKeyEvent, aType) ;

  }

  }

  這個iXXView的ProcessListEvent()函數(shù)就是傳入當(dāng)前用戶選擇的那個list item的index。

  問題八、pkg文件中指定多個操作系統(tǒng)版本

  pkg file定義了安裝文件(sis)的內(nèi)容,它包括應(yīng)用程序的UID,一個支持的語言列表,目標(biāo)產(chǎn)品的UID和打包在sis的一組文件:

  ; MyGame.pkg

  ; Specifies an installation file for MyGame ///////為MyGame文件制定一個安裝文件

  ;Languages

  &EN

  ;Header

  #,(0×1000ABCD),1,0,0

  ; Required line for Series 60 devices. Defines the target product

  ; UID.

  (0×101F6F88), 0, 0, 0,

  “\\epoc32\\release\\thumb\\urel\\MyGame.app”-“!:\\system\\apps\\MyGame\\MyGame.app”

  “\\epoc32\\release\\thumb\\urel\\MyGame.rsc”-“!:\\system\\apps\\MyGame\\MyGame.rsc”

  “\\epoc32\\release\\thumb\\urel\\MyGame.mbm”-“!:\\system\\apps\\MyGame\\MyGame.mbm”

  “\\epoc32\\release\\thumb\\urel\\MyGame.aif”-“!:\\system\\apps\\MyGame\\MyGame.aif”

  “..\\MyGame\\MyGameSample.wav”-“!:\\system\\apps\\MyGame\\MyGameSample.wav”

  Product UID定義了應(yīng)用程序的目標(biāo)環(huán)境,大部分的s60版本是向下兼容的。

  參見下表:

  Nokia 7650 0×101F6F87

  Nokia 3650 0×101F7962

  Nokia 9210/9290 0×10005E33

  Nokia N-gage 0×101F8A64

  Siemens SX1 0×101F9071

  Series 60 Platform v0.9 0×101F6F88

  Series 60 Platform v1.0 0×101F795F

  Series 60 Platform v1.1 0×101F8201

  Series 60 Platform v1.2 0×101F8202

  Series 60 Platform v2.0 0×101F7960

  如果程序需要依據(jù)各不同的平臺來進(jìn)行安裝,那就可以使用條件語句塊來處理,這時pkg里的語句如下:

  ;

  ; Files to install

  ;

  IF MachineUID=0×101fb3dd

  ; Nokia 6600 specific files

  “..\\MyFiles\\FileFor6600.dat”-“!:\\system\\apps\\MyGame\\MyData.dat”

  ELSEIF MachineUID=0×101f466a

  ; Nokia 3650 specific files

  “..\\MyFiles\\FileFor3650.dat”-“!:\\system\\apps\\MyGame\\MyData.dat”

  ELSE

  ; Files for other devices

  “..\\MyFiles\\FileForOthers.dat”-“!:\\system\\apps\\MyGame\\MyData.dat”

  ENDIF

  就可以生成一個支持多平臺的安裝文件,除了機(jī)器UID外,還有很多屬性,如內(nèi)存和CPU的標(biāo)識:

  注意,機(jī)器UID和Product UID是不同的,見下:

  Nokia 7650 0×101F4FC3

  Nokia 3650 0×101F466A

  Nokia 6600 0×101FB3DD

  Nokia 9210/9290 0×10005E33

  Nokia N-Gage 0×101F8C19

  Win32 Emulator 0×10005F62

  可以使用如下的代碼來找出該設(shè)備的機(jī)器UID:

  #include //and link with hal.lib

  TInt machineUid = 0;

  HAL::Get(HALData::EmachineUid, machineUid);

  問題九、如何按字節(jié)讀取文件

  1.RFile::Read()

  TInt Read(TDes8& aDes,TInt aLength) const;


主站蜘蛛池模板: 一色屋色费精品视频在线看 | 偷拍视频免费 | 波多野结衣网址 | 成人区精品一区二区毛片不卡 | 中国国产成人精品久久 | 中文字幕欧美在线观看 | 在线精品自拍亚洲第一区 | 欧美日韩在线成人免费 | 日本视频中文字幕一区二区 | www男人的天堂 | 欧美日韩一区二区视频图片 | 丁香综合五月 | 久久久国产一区二区三区 | 日韩免费高清一级毛片久久 | 色网站免费 | 小视频在线播放 | 亚洲一区二区三区在线视频 | 外国毛片在线观看 | 日本强在线播放一区 | 日本一区二区不卡视频 | 激情六月婷婷 | 亚洲欧美日韩国产成人app | 男女涩涩网站 | 久久精品亚洲精品国产欧美 | 日本一区二区三区视频在线 | 在线观看国产日本 | 丁香五月欧美成人 | 欧美日韩综合一区 | 男女网站免费 | 国内国内在线精品视频 | 欧美亚洲一区二区三区 | 精品一区二区视频在线观看 | 国产精品一区久久精品 | 久久国内 | 一区二区视频免费看 | 精品久久免费观看 | 女人的天堂网站 | 污视频网址 | 免费一级在线 | 国产一区日韩二区欧美三 | 国产精品美女视频 |