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 |
どのようにして適用するか
信号レベルは曖昧な値を返すため、最大値をパーセント表示などを使って計量化する必要があります。そこで、GetMaxSignalLevelやGetSignalLevelを使用する必要があります。
この関数は、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 |
