LiveViewは、LiveViewアプリが起動していないことにはペアリングされても、アプリとして接続されません。
しかし、普通のServiceアプリであるLiveViewアプリは端末の状態によっては、ちゃんと動作していない状態になるようです。
これを、起動させるアプリとしてLiveWareマネージャがあるのですが、これはあまり仕事をしてくれているようでは無いです。
そこで、AutomateItを利用して事あるごとにLiveViewアプリを起動させるようにします。(xdaにやればちょっとは幸せになれるかもみたいなことが書いてあったので。)
しかし、それだとLiveViewアプリがいきなりフォアグラウンドになって欝陶しいです。
しかし、よくよく考えるとLiveWareマネージャから起動されるLiveViewアプリは一瞬画面が切り替わりますがすぐに消えます。
これは、きっとINTENTの発行先が違うのだろうと思って、調べてみると「com.sonyericsson.extras.liveview.settings.BootLauncher」にIntent発行している模様。
AutomateIt は、アプリケーションの通常起動しか指定できないので、上記BootLauncherを呼ぶことができません。
そこで、
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(this.getClass().getName(),"LiveViewHelper Main!");
// パッケージ名, クラス名をセット
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.setFlags(0x10000000);
intent.setClassName("com.sonyericsson.extras.liveview",
"com.sonyericsson.extras.liveview.settings.BootLauncher");
// アプリを起動
this.startActivity(intent);
// 自身の終了
finish();
}
な、中身のアプリを用意。AutomateItからこのアプリ(LiveViewHelper)を介して、「com.sonyericsson.extras.liveview.settings.BootLauncher」を呼び出すようにしてみました。
AutomateIt の設定はこんな感じ
効果はどのくらいあるか定かではありませんが、とりあえずコレで様子見です。
----
2011/12/11
LiveViewHelper.apk