从我的扩展程序中,我可以使用以下代码启动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应用程序接收了一些特殊处理,或者是什么问题?
答案 0 :(得分:0)
我找到了两种方法来解决这个问题:
1)在调用另一个之前触发当前扩展的停止。这恰好适用于最新的SmartWatch 2,但据我记忆,它不适用于原始的SmartWatch。
如果您开始使用自己的扩展程序,那么更安全的做法是什么:
2)定义您要启动的扩展程序将接收的自定义意图(当然,这是在Manifest文件中完成的);然后从你的其他扩展程序广播该意图。我选择这种方式,也是因为它使我能够将数据传递给扩展名。
投票,如果您发现此解决方案有用: - )