android(IS01)でJavaScriptプログラミング4

※以前別の場所で書いた文章を備忘的に書き記しておきます。

【投稿年月日】2010-12-15 【ジャンル】JavaScript

 前回(android(IS01)でJavaScriptプログラミング3)から間が開きましたが取り合えず完結編。

 IS01でFMトランスミッターを使うときの注意点として、音量が小さいということが挙げられます。そこで、FMトランスミッターを呼び出すときは、同時に音量を最大にします。sl4aのrhinoでは「droid.setMediaVolume(15);」というように記述します。逆に音量を小さくするときは「droid.setMediaVolume(1);」という感じです。
 また、FMトランスミッターを利用するアプリも決まっているので、同時に呼び出すことにします。複数のアプリを選択したり、FMトランスミッターのオンオフを切り替えたりできるように、ダイアログを呼び出すことにします。

 では、実際にプログラム(と言うより簡単なマクロ)を作成してみます。
load("/sdcard/com.googlecode.rhinoforandroid/extras/rhino/android.js");
var droid = new Android();
var volume = 15;
var id = dialog("Action", ["MUSIC", "radiko", "FMtransmitter Setting","Volume OFF"]);
switch(id) {
case 1 :
 droid.launch("jp.co.sharp.android.playlist.PlaylistActivity");
 break;
case 2 :
 droid.launch("com.gmail.nagamatu.radiko.main");
 break;
case 3 :
 break;
default :
 droid.setMediaVolume(1);
 quit();
}
droid.launch("jp.co.sharp.android.FMtransmitter.FMtransmitter");
droid.setMediaVolume(volume);
quit();

function dialog(title, json) {
 droid.dialogCreateAlert(title);
 droid.dialogSetItems(json);
 droid.dialogShow();
 return 1 + droid.dialogGetResponse().item;
}
 プログラムを実行すると、次のようなダイアログが出てきます。(ちなみに「/system/build.prop」の「ro.sf.lcd_density=240」を変えることでダイアログの文字を小さくすることが可能。要root)
is01

 「MUSIC」や「radiko」、「FMtransmitter Setting」を選択すると、FMトランスミッターの設定画面が開きます。チェックを入れて設定画面を閉じると、続けて「MUSIC」や「radiko」が開きます。
 なお、ワンセグならば「droid.launch("jp.co.fsi.fs1seg.app.Main");」、YouTubeならば「droid.launch("com.google.android.youtube.HomeActivity");」に変更すればOKです。
 もう少し工夫すれば更に使い勝手がよくなると思いますが、今一つandroidやsl4aのことを分かっていないので現状はここまで。

 ちなみにFMトランスミッターの設定画面を開くだけならば、「ADW.Launcher」というHOMEアプリを利用すれば以下の通り結構簡単にショートカットを作ることができます。
l「ホーム長押し」→「カスタムショートカット」→「アクティビティを選択」→「アクティビティ」→「FMトランスミッター」


 以下、IS01について備忘的に書き残しておきます。

 スクリーンショットは「screenshots」というアプリで撮影しています(要root)。また、「SwiFTP」というアプリにより、スクリーンショットをWifiでIS01とPC間でやり取りしています(root不要)。「WebKey」というアプリが使えれば、スクリーンショットも、IS01とPCとのデータのやり取りも一辺にできるのですが、残念ながらIS01では使えません。

 また、「ADW.Launcher」を常用しておりプリインストールされたHOME画面が不要になったので、「GScript Lite」というアプリで以下のようなスクリプトを作成し、ケータイアップデートやメジャーアップデートと共に、起動させないようにしています。(要root+α)
mv /system/app/Launcher.apk /system/app/Launcher.apk.org
mv /system/app/Launcher.odex /system/app/Launcher.odex.org
mv /system/app/FotaApp.apk /system/app/FotaApp.apk.org
mv /system/app/FotaApp.odex /system/app/FotaApp.odex.org
mv /system/app/MajorUpdate.apk /system/app/MajorUpdate.apk.org
mv /system/app/MajorUpdate.odex /system/app/MajorUpdate.odex.org
reboot
 更に、普段はワンセグを使わないので、「GScript Lite」で同様のスクリプトを作成して、起動させないようにしています。
mv /system/app/FSonesegApp.apk /system/app/FSonesegApp.apk.org
mv /system/app/FSonesegApp.odex /system/app/FSonesegApp.odex.org
mv /system/app/FSonesegBG.apk /system/app/FSonesegBG.apk.org
mv /system/app/FSonesegBG.odex /system/app/FSonesegBG.odex.org
mv /system/app/FSonesegBML_Http.apk /system/app/FSonesegBML_Http.apk.org
mv /system/app/FSonesegBML_Http.odex /system/app/FSonesegBML_Http.odex.org
reboot
 逆にワンセグを起動させたいときは以下のスクリプトを走らせます。
mv /system/app/FSonesegApp.apk.org /system/app/FSonesegApp.apk
mv /system/app/FSonesegApp.odex.org /system/app/FSonesegApp.odex
mv /system/app/FSonesegBG.apk.org /system/app/FSonesegBG.apk
mv /system/app/FSonesegBG.odex.org /system/app/FSonesegBG.odex
mv /system/app/FSonesegBML_Http.apk.org /system/app/FSonesegBML_Http.apk
mv /system/app/FSonesegBML_Http.odex.org /system/app/FSonesegBML_Http.odex
reboot

 rootが取れるようになったので、IS01が更に面白くなりました。実用的なプログラムができたら、また紹介したいと思います。

EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript