1

私の内線番号から、次のコードで通話処理拡張機能を開始できます。

 Intent i1 = new Intent("com.sonyericsson.extras.aef.control.START_REQUEST");
  i1.putExtra("aea_package_name", "com.sonyericsson.extras.liveware.extension.call");
  i1.setPackage("com.sonyericsson.extras.smartwatch");
  mContext.sendBroadcast(i1, "com.sonyericsson.extras.liveware.aef.HOSTAPP_PERMISSION");

ただし、自分の拡張機能や他のサードパーティの拡張機能を同じ方法で開始することはできません。

Intent i2 = new Intent("com.sonyericsson.extras.aef.control.START_REQUEST");
  i2.putExtra("aea_package_name", "eir.log");
  i2.setPackage("com.sonyericsson.extras.smartwatch");
  mContext.sendBroadcast(i2, "com.sonyericsson.extras.liveware.aef.HOSTAPP_PERMISSION");

i2インテントは、拡張機能からではなく、別のアプリから呼び出された場合に正しく機能します。

困惑しています。通話処理拡張機能は、ホストアプリから特別な処理を受けていますか、それとも何が問題ですか?

4

1 に答える 1

0

この問題を解決する2つの方法を見つけました。

1)他の拡張機能を呼び出す前に、現在の拡張機能の停止をトリガーします。これはたまたま最新のSmartWatch2で機能しますが、私が覚えている限り、元のSmartWatchでは機能しませんでした。

独自の拡張機能を開始する場合、より安全な方法は次のとおりです。

2)開始する拡張機能が受け取るカスタムインテントを定義します(もちろん、これはマニフェストファイルで行われます)。次に、他の拡張機能からそのインテントをブロードキャストします。この方法を選択したのも、拡張機能にデータを渡すことができるためです。

この解決策が役立つと思ったら、投票してください:-)

于 2013-10-10T12:20:18.727 に答える