SmartWatch扩展开始

时间:2013-02-21 17:56:43

标签: android sony-smartwatch

从我的扩展程序中,我可以使用以下代码启动Call Handling扩展:

 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意图从其他应用程序调用时,它可以正常工作,但不能从扩展程序调用。

我很困惑。 Call Handling扩展是否从Host应用程序接收了一些特殊处理,或者是什么问题?

1 个答案:

答案 0 :(得分:0)

我找到了两种方法来解决这个问题:

1)在调用另一个之前触发当前扩展的停止。这恰好适用于最新的SmartWatch 2,但据我记忆,它不适用于原始的SmartWatch。

如果您开始使用自己的扩展程序,那么更安全的做法是什么:

2)定义您要启动的扩展程序将接收的自定义意图(当然,这是在Manifest文件中完成的);然后从你的其他扩展程序广播该意图。我选择这种方式,也是因为它使我能够将数据传递给扩展名。

投票,如果您发现此解决方案有用: - )