fscommand2で何ができるか?

2009年1月20日(火)
岡田 昇三

fscommand2でできること

 Flash Liteではデバイスに特化した「fscommand2()」というコマンドがあります。よく使用する機能は以下になります。

・日時の取得
・電波状態の取得
・電池の状態の取得
・バイブを鳴らす

 すべてのfscommand2ついて詳しくは、Adobeのページ(http://livedocs.adobe.com/flashlite/2_jp/main/00000328.html)をご覧ください。例えば、以下のGetTimeHours、GetTimeMinutes、GetTimeSecondsを使用するだけで簡単に時計ができます(図1-1)。

 しかし、注意しなければならいのは、各キャリアによって取得できる情報が違うことです。例えば、電波の状態を取得できる「GetSignalLevel」は図1-2の通りです。

 このように、キャリアやバージョンによって同じスクリプトでは動きませんので切り分けが必要になります。そのほかの違いは、筆者の手持ちの携帯電話で取得した値をまとめたPDFファイルをこちらからダウンロード(http://tedia.jp/member/download/detail.php?id=110)できますので、ご覧ください(776_1.zip/43.4 KB)。

 また、よく使用するfscommand2コマンドのソースコードは以下の通りです。

 デバイスの名前を取得する場合は以下になります。

statusdevice = fscommand2("GetDevice", "devicename");
trace(devicename)
→出力結果 デバイス名(901i, 705i等)

 日付を取得する場合は以下になります。

today = fscommand2("GetDateDay"); //日
weekday = fscommand2("GetDateWeekday"); //曜日
thisMonth = fscommand2("GetDateMonth"); //月
thisYear = fscommand2("GetDateYear"); //年

 時間を取得する場合は以下になります。

hour = fscommand2("GetTimeHours"); //時
minutes = fscommand2("GetTimeMinutes"); //分
seconds = fscommand2("GetTimeSeconds"); //秒

 電波の状態を調べる場合は以下になります。

maxSignalLevel = fscommand2("GetMaxSignalLevel"); //最大受信レベル
nowSignalLevel = fscommand2("GetSignalLevel"); //現在の受信レベル


 電池の状態を調べる場合は以下になります。

maxBatt = fscommand2("GetMaxBatteryLevel"); //電池の最大容量
nowBatt = fscommand2("GetBatteryLevel"); //現在の電池容量

 バイブを鳴らす場合は以下になります。

status = fscommand2("StartVibrate", 2500, 1000, 2); //2.5秒、1秒間隔で、2回鳴らす

 再生クオリティーを変更する場合は以下になります。

status = fscommand2("SetQuality", "high"); //高
status = fscommand2("SetQuality", "medium"); //中
status = fscommand2("SetQuality", "low"); //低

 使用メモリ量を計算する場合は以下になります。

useMemory = fscommand2("GetTotalPlayerMemory") - fscommand2("GetFreePlayerMemory");
trace(useMemory)
→出力結果 メモリの使用量

携帯電話特有の機能をFlashから呼び出す

 さらに、携帯電話特有の機能もあります。電話をかけるには以下のようになります。

getURL("tellto:090********")

 また、auとソフトバンクに関しては、Flash Liteから衛星利用測位システム(GPS)の起動も可能です(docomoに関しては、起動方法が不明)。

getURL("device:location?url=CGIのURL") //auの場合(FlashLite2.0以降)
getURL("location:auto?url=CGIのURL") //ソフトバンクの場合

 さらにau FlashLite2.x以降であれば、au独自のdeviceスキームが使用できます。Flash Liteの場合、ユーザーがブラウザにブックマークをした際はSWFのファイル名になってしまいます。ファイル名を指定してブックマークさせる方法は不明ですが(2008年12月現在)、auのFlashLite2.x以降であれば、「getURL("device:home/bookmark?url=URL&title=タイトル")」と記述すればタイトルを指定できます。そのほかのau独自のdeviceスキームを使用には以下のようになります(au FlashLite2.x以降)。

getURL("device:home") //auTOPへ
getURL("device:location?url=CGIのURL") //位置情報送信
getURL("device:gpsone?url=(CGIのURL)&ver=1&datum=1&unit=1&acry=0&number=0") //GPS情報送信
getURL("device:home/bookmark") //お気に入りを開く

 このdeviceスキームだけではなく、携帯電話のHTML側でタグに入るものはFlashにて使用できる可能性が高いので、いったんすべて洗い出してテストしてみるもの良いかも知れません。ただし、正規の使用方法ではないと思われるので、どこかのバージョンで急に対応しなくなる可能性が高いので注意が必要です。

【参考文献】

「波状況によって表示を変える。携帯FLASH待ち受けTips」(
http://mobilef.jugem.jp/?eid=35)(アクセス:2008/12)

「au端末の独自スキーム(device:)について」(http://www.ezinfo.jp/tips/device)(アクセス:2008/12)

ワイノット(株)、楽天(株)、フリーランス活動を経て2009年よりhi-posi Inc.代表。「nike 6.0 mobile」「ナイキ モバロンドール」「H&M mobile」「bascule helmets!」などに携わる。http://hi-posi.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています