×
Namespaces

Variants
Actions
(Difference between revisions)

Application Interworking(AIW)(日本語)

From Nokia Developer Wiki
Jump to: navigation, search
masatoshi (Talk | contribs)
(New page: アプリケーション・インターワーキング(アプリケーション間の相互作用, Application Interwoking, AIW)フレームワークは、既存のコードへの静的リ...)
 
masatoshi (Talk | contribs)
Line 93: Line 93:
  
  
[[Category:JA_Symbian_C++]] [[Category:JA_S60]] [[Category:JA_Telephony]] [[Category:JA_Essential_Idioms]][[Category:JA_Code Examples]]
+
[[Category:Lang-JP]][[Category:JA_Symbian_C++]] [[Category:JA_S60]] [[Category:JA_Telephony]] [[Category:JA_Essential_Idioms]][[Category:JA_Code Examples]]

Revision as of 09:49, 17 April 2008

アプリケーション・インターワーキング(アプリケーション間の相互作用, 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

 

118 page views in the last 30 days.
×