You Are Here:

Community: Wiki

This page was last modified on 6 June 2008, at 09:44.

Flash LiteでNetworkプロパティを取得する

From Forum Nokia Wiki


原文(英語): Getting Network properties in Flash Lite

モバイル機器用にFlash Liteアプリケーションを開発する際に最も重要な情報の一つは、ユーザが保持してる接続の速度および通信コストです。Flash Liteでは、そのような情報はfscommand2()関数を使用して得ることができます。

Contents

どのようにして適用するか

信号レベルは曖昧な値を返すため、最大値をパーセント表示などを使って計量化する必要があります。そこで、GetMaxSignalLevelGetSignalLevelを使用する必要があります。

この関数は、2つのデータを取得し、0~100の間の数値を返すたけです。

function GetSignalLevel(){
var SignalLevel:Number;
var MaxSignal:Number;
var CurrentSignal:Number;
CurrentSignal= fscommand2("GetSignalLevel");
MaxSignal = fscommand2("GetMaxSignalLevel");
SignalLevel = Math.round(CurrentSignal/MaxSignal )*100;
return SignalLevel;
}

速度(通信方式)

速度(通信方式)を知る必要がある場合、GetNetworkGenerationコマンドを使用できます。これは、ある数値を返すもので、数値が大きいほど優れている、この場合は、より最新の世代(例. 2.5G, 3G)であることを示します。

function GetNetworkSpeed(){
var netGeneration:String = fscommand2("GetNetworkGeneration")
switch(netGeneration){
case -1:
netGeneration = "No Network";
break;
case 0:
netGeneration = "Can't tell";
break;
case 1:
netGeneration = "2G";
break;
case 2:
netGeneration = "2.5G";
break;
case 3:
netGeneration = "3G";
break;
}
return netGeneration;
}

かかる通信コスト

もちろん、通信コストの情報を直接得ることはできませんが、端末が現在ホームネットワークを使用している、あるいはローミング中である場合、それを知ることができます。ローミング中にメガバイト単位のデータをダウンロードするため、その前に、最小限プロンプト表示でユーザに問い合わせる必要があります。

これはfscommand2()関数を使用し、情報を抽出するためにGetNetworkStatusコマンドとGetConnectionStatusコマンドを使用します。

function GetNetworkSpeed(){
netStat = fscommand2("GetNetworkStatus");
var netStatus:String
switch(netStat) {
case -1:
netStatus = "network status not supported" add newline;
break;
case 0:
netStatus = "no network registered" add newline;
break;
case 1:
netStatus = "on home network" add newline;
break;
case 2:
netStatus = "on extended home network" add newline;
break;
case 3:
netStatus = "roaming" add newline;
break;
}
conStat = fscommand2("GetConnectionStatus");
var conStatus:String
switch(conStat) {
case -1:
conStatus = "network status not supported" add newline;
break;
case 0:
conStatus = "no network registered" add newline;
break;
case 1:
conStatus = "on home network" add newline;
break;
case 2:
conStatus = "on extended home network" add newline;
break;
case 3:
conStatus = "roaming" add newline;
break;
}
statusnetName = fscommand2("GetNetworkName", "netName")
if(netName =="undefined") {
netName = "";
}
return "Network Status: " +newline + netName + newline+ netStatus;
}

使用不可の場合など

これら全ての情報は、サービスが止まっているあるいは使えない場合は役に立ちません。そして、HTTPリクエストを送り、何が起こっているのかを確認することが考えられます。GetNetworkRequestStatusコマンドを使うことができます。

var httpStat:Number;
httpStat= fscommand2("GetNetworkRequestStatus");

httpStat変数が取得する値は、以下の意味を示します。

-1: コマンドをサポートしていない
 0: リクエスト待ち。ネットワーク接続済。ホスト名解決済。サーバー接続済。
 1: リクエスト待ち。ネットワーク接続中。
 2: リクエスト待ち。ネットワーク未接続。
 3: リクエスト待ち。ネットワーク接続済。ホスト名解決中。
 4: ネットワークエラーによる、リクエスト失敗。
 5: サーバー接続エラーによる、リクエスト失敗。
 6: サーバーからHTTPエラー(例.404)が返された。
 7: DNSサーバが見つからないか、サーバ名が解決できず、リクエスト失敗。
 8: 成功(リクエスト完了)。
 9: タイムアウトによるリクエスト失敗。
10: リクエストがまだ発行されていない。

これらをいかにして利用するか

複数プラットフォームが結合し、異なるネットワークが絡んだ各fscommandにおいて、Flash Liteアプリケーションを持つ端末のネットワークについて、膨大な情報を得ることができます。この情報を自由に使い、「データをアップデートするかしないか」あるいはそれをユーザが決定するためのデータを提供する、といった動作を決定することができます。

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia