プログラムコードから SmartWatch Extension を起動する方法が知りたいです。例えば、Intent などです。 先日 Google Play に SmartWatch のスクリプト言語を登録しました。2つのプログラムに分かれており、1つはSmartWatch Extension(BitmapCatcher)として登録され、もう1つはスマートフォンアプリ(Luarida)として登録されています。スクリプトはスマートフォンから開始します。ここでは、スクリプトの起動と同時に BitmapCatcher を起動したいと思います。LiveWareにIntnentを送れば、画面タッチなしでBitmapCatcherを起動できると思われますが、やり方がわかりません。
画面タッチなしでSmartWatch Extensionを起動するプログラムコードを教えてください。
(ソニーのモバイル サイトの Smart Extras ディスカッションでこの質問を書いたとき、このサイトで Jerker 氏に尋ねることをお勧めしました。)
ご説明を参考にテストしましたが、他のAndroidアプリからSmartWatch Extensionを起動することはできませんでした。また教えてください。
「Your.package.name」には何を書けばいいですか?
また、「HostAppPackageName」には何を書けばいいですか?
sendBroadcast で始まるのは BitmapCatcher です。このパッケージ名は「com.luaridaworks.smartwatch.bitmapcatcher」です。
テストプログラムでは、以下のように書きました。次のコメントに続きます。
package com.luaridaworks.test02;
import com.sonyericsson.extras.liveware.aef.control.Control;
import com.sonyericsson.extras.liveware.aef.registration.Registration;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Test02Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, "com.luaridaworks.smartwatch.bitmapcatcher");
intent.setPackage("com.luaridaworks.smartwatch.bitmapcatcher");
sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
}
}
BitmapCatcher が起動しないので、Intent を以下のように書き換えてテストしました。
intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, "com.luaridaworks.smartwatch.bitmapcatcher");
intent.setPackage("com.sonyericsson.extras.liveware");
sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
同様に開始しませんでした。インテントは次のように書き換えてテストしました。
intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, "com.luaridaworks.smartwatch.bitmapcatcher");
intent.setPackage("com.luaridaworks.test02");
sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
同様に開始しませんでした。インテントは次のように書き換えてテストしました。
intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, "com.luaridaworks.test02");
intent.setPackage("com.luaridaworks.smartwatch.bitmapcatcher");
sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
同様に開始しませんでした。インテントは次のように書き換えてテストしました。
intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, "com.sonyericsson.extras.liveware");
intent.setPackage("com.luaridaworks.smartwatch.bitmapcatcher");
sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
同様に開始しませんでした。まだ成功していません。
通常アプリケーションプログラムから「com.luaridaworks.smartwatch.bitmapcatcher」を起動する com.luaridaworks.test02 というプログラムコードの例を教えてください。