×
Namespaces

Variants
Actions

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

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

We do not recommend Flash Lite development on current Nokia devices, and all Flash Lite articles on this wiki have been archived. Flash Lite has been removed from all Nokia Asha and recent Series 40 devices and has limited support on Symbian. Specific information for Nokia Belle is available in Flash Lite on Nokia Browser for Symbian. Specific information for OLD Series 40 and Symbian devices is available in the Flash Lite Developers Library.

Article Metadata
Article
Translated:
By morisawafnj
Last edited: hamishwillee (14 May 2013)


モバイル機器用に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アプリケーションを持つ端末のネットワークについて、膨大な情報を得ることができます。この情報を自由に使い、「データをアップデートするかしないか」あるいはそれをユーザが決定するためのデータを提供する、といった動作を決定することができます。

This page was last modified on 14 May 2013, at 09:51.
190 page views in the last 30 days.