Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

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

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 Discussions
Thread Thread Starter Forum Replies Last Post
Turn ON LED LIGHT on Nokia 5700 XpressMusic knelle General Discussion 0 2008-01-13 20:03
need help for flash sms renishladani General Messaging 0 2006-03-28 11:37
integrate flash lite and python oyuky Python 0 2008-06-14 07:21
How to read a flash sms zihui_w Web Technologies and Multimedia Content- Web 技术和多媒体内容 2 2005-04-08 14:26
Flash Lite and C++ Integration sysctl General Symbian C++ 4 2007-03-23 00:29
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX