Categories: Lang-JP | JP Symbian C++ | JP S60 | JP Telephony | JP Essential Idioms | JP Code Examples
This page was last modified 04:37, 2 May 2008.
Application Interworking(AIW)(日本語)
From Forum Nokia Wiki
英語版:Application Interworking(AIW)
アプリケーション・インターワーキング(アプリケーション間の相互作用, Application Interwoking, AIW)フレームワークは、既存のコードへの静的リンクやデバイスにどんなサービスが利用可能か前もって知ること無しに、機能をアプリケーションに動的に追加する仕組みです
基準アイテム(criteria item)は、あるAIWサービスを明記します。コンシューマ・アプリケーションは、そのAIWサービスを使用に興味があります。基準アイテムの配列をインタレスト(interest)と呼びます。コンシューマ・アプリケーションのインタレストは、そのリソース・ファイルに定義するか、CAiwCriteiraItem を使って動的に定義します。AIW フレームワークは、基準アイテムを使って、適切なサービス・プロバイダ(provider)を利用可能かどうか調べ、要求されたプロバイダを初期化します。
AIWフレームワークのメイン・クラスは、CAiwServiceHandler です。これは、コンシューマ側のAIW APIを実装します。AIWサービスを使う各アプリケーションは、このクラスのインスタンスを生成しなければいけません。サービス・ハンドラ(handler)は、コンシューマ・アプリケーションにサービスを提供するサービス・プロバイダの、動的なロードをサポートします。インタレストとデータ引数を通して、サービス・ハンドラは、コンシューマとサービス・プロバイダを相互に対応付け、プロバイダからコンシューマを隠します。
例:もしサード・パーティ・アプリケーションが電話を発呼したい場合、その機能をもつプロバイダを使用することが出来ます。コンシューマ・アプリケーションは、CAiwCriteriaItem かrssファイルに詳細を記述することで、そのようなサービスを使いたいことを以下のように明記します。
// Specifying dynamically CAiwCriteriaItem* criteria = CAiwCriteriaItem::NewLC( KAiwCmdCall, KAiwCmdCall, _L8( "*" ) ); // using rss file RESOURCE AIW_INTEREST r_aiwconsumerapp_interest1 { items = { AIW_CRITERIA_ITEM { id = EAIWPlaceHolder; serviceCmd = KAiwCmdCall; //from aiwcommon.hrh serviceClass = KAiwClassMenu; //from aiwcommon.hrh contentType = "*"; //defaultProvider = 0x101F868E; maxProviders =1; } }; }
このリソースIdは、サービス・ハンドラのAttachL()メソッドに渡されます。コンシューマとプロバイダ間でデータを渡すために、AIWフレームワークは、ジェネリック・パラメータ・リスト(generic parameter list)を使います。ジェネリック・パラメータ・リストのアイテムは、セマンティックIDを持ち、これは、アイテムが持つデータの方を定義しています。これらセマンティックIDの値は、AIWGenericParams.hrh で定義されています。
例えば、発呼する場合、電話番号や通話の種類(テレビ電話、音声、VoIP)、発呼者名などの詳細を渡す必要があります。これらの値は、TAiwDialDataV1 を使って渡され、これは、EGenericParamCallDialDataV1 を明記することでプロバイダに通知されます。
CAiwServiceHandler* serviceHandler = CAiwServiceHandler::NewLC(); // Create AIW interest RCriteriaArray interest; CleanupClosePushL( interest ); CAiwCriteriaItem* criteria = CAiwCriteriaItem::NewLC( KAiwCmdCall, KAiwCmdCall, _L8( "*" ) ); TUid base; base.iUid = KAiwClassBase; criteria->SetServiceClass( base ); User::LeaveIfError( interest.Append( criteria ) ); // Attach to AIW interest serviceHandler->AttachL( interest ); // Create AIW param package TAiwDialDataV1 data; TAiwDialDataV1Pckg dataPckg( data ); iNameBuffer = aName.Left( iNameBuffer.MaxLength() ); data.SetName( iNameBuffer ); iTelNumber = aNumber.Left( iTelNumber.MaxLength() ); data.SetTelephoneNumber( iTelNumber ); data.SetCallType( aCallType ); data.SetWindowGroup( CCoeEnv::Static()->RootWin().Identifier() ); CAiwGenericParamList& paramList = serviceHandler->InParamListL(); TPtrC8 ptr; ptr.Set( dataPckg ); TAiwVariant variant( ptr ); TAiwGenericParam param( EGenericParamCallDialDataV1, variant ); paramList.AppendL( param ); // Execute AIW command serviceHandler->ExecuteServiceCmdL( KAiwCmdCall, paramList, serviceHandler->OutParamListL() ); CleanupStack::PopAndDestroy( 3 ); // criteria, interest, serviceHandler
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Server application | sevkar | General Symbian C++ | 1 | 2004-08-03 04:02 |
| Ask The Expert: dcrocha on Python | Nokia Ron | Interviews & Ask the Experts | 15 | 2008-04-21 20:51 |
| Embedding | Shaikuny | General Symbian C++ | 0 | 2004-12-18 12:49 |
| Developing something similiar to To-Do Application | andreas84 | General Symbian C++ | 1 | 2003-10-03 10:40 |
| "Allow application to send request" ? Yes or no. | sponnukumar | Mobile Java General | 5 | Yesterday 11:17 |
