0

我是索尼智能手表开发的新手。我在创建演示索尼智能手表应用程序时遇到了一些问题。我的活动中有一个 EditText 和一个 Button 。当我单击 Button 时,EditText 中的字符串应发送到智能手表并显示在控件上。我还应该能够从我的应用活动中更改手表上的文本。

更新:

1)我想从我的 Main App Activity 启动一个智能手表控件扩展并在其上显示一个简单的文本 2)应该从 Main App Activity 发送文本。

根据我从 SDK 示例中了解到的情况(如果有错误,请纠正我): 1)要完全控制智能手表屏幕并显示文本视图或图像,我需要扩展 ControlExtension 类(在我的情况下 -> DemoControlSmartWatch.java)。2)我需要在清单中注册一个广播接收器(DemoReceiver.java),当它从主机应用程序和/或智能连接应用程序接收到一个意图时,它将启动扩展服务(DemoExtensionService.java)。3) 还创建了一个类 (DemoRegistrationInformation.java),它扩展了 RegistrationInformation 类并负责注册内容。4)我有一个带有按钮的活动(MainActivity.java)。现在,我想在单击按钮时向 ControlExtension 发送一个字符串。

我发现要启动扩展程序,我需要执行以下操作

Intent intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, "com.example.sonytest");
intent.setPackage("com.sonyericsson.extras.liveware.emulator");
sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);

我尝试在 MainActivity 类的 onCreate 方法中编写此代码,但它不会在智能手表上启动我的 Control 扩展。我应该在 DemoExtensionService 中编写上述代码并将我的活动绑定到服务吗?

4

2 回答 2

2

您的演示似乎不合适,我建议您考虑一个也有一些实际用途的应用程序。如果我正确理解您的问题,解决方案将是:

1) 从您的活动中,您需要在 SmartWatch 上启动您的扩展程序。操作方法如下:Sony SmartWatch - 收到事件时调用 Smart Watch 上的应用程序

2)您还想将一些参数传递给您的扩展,即您提到的字符串。这可能有点棘手;通常,您会在 Intent 本身中传递该字符串,作为额外的,但在这里,这是不可用的。您需要将该信息(字符串)保存在您的扩展程序也可以访问的位置。因此,如果您的 Activity 和您的扩展程序是同一个应用程序的一部分,则该位置可以是应用程序首选项:活动将值保存在首选项中,扩展程序从相同的首选项中读取它并将其显示在 SmartWatch 或其他设备上。

于 2013-09-23T20:00:18.587 回答
0

通常,扩展程序的启动方式是从手表启动它,然后主机应用程序将发送广播以启动您的服务。

如果你试图从一个活动开始你的扩展,上面的 Intent 应该可以工作。您在发送该广播时是否看到任何错误?检查您的主机应用程序包名称是否正确。

于 2013-09-24T18:12:05.803 回答