我想在智能手表上显示现有App XYZ的输出(位图)。据我所知,Control API是可以采用的方法,但索尼SDK和OpenSource项目(8Game和MusicPlayer)中的现有示例对我来说并不清楚。我是否正确,我需要将以下类集成到现有的应用程序中?
MyControlWatch.java
MyExtensionReceiver.java
MyExtensionService.java
MyRegistrationInformation.java
我还需要什么?如何让SmartWatch显示我的位图?我是否必须发送CONTROL_START_REQUEST_INTENT
,如果是,我应该从哪里发送?我需要从给定的SampleControlExtension更改以获取结果吗?
答案 0 :(得分:1)
是的,这些是显示控制扩展所需的类。您无需必须发送CONTROL_START_REQUEST_INTENT。仅当您想要从另一个扩展程序启动控制扩展时才会这样。
查看SDK的/ samples目录中包含的SampleControlSmartWatch.java类中的示例代码。检查Animation()类构造函数以获取示例。基本上你需要创建一个布局然后添加你的位图然后调用showBitmap()。
答案 1 :(得分:0)
索尼应该创建迷你教程,可以用于像u.u
这样的东西/ ** *这是如何更新整个布局和一些的示例 *意见。对于每个视图,使用一个包。此捆绑包必须具有布局 *引用,即视图ID和要使用的内容。这种方法 *更新ImageView和TextView。 * * @see Control.Intents#EXTRA_DATA_XML_LAYOUT * @see Registration.LayoutSupport * /
private void updateLayout() {
mCount = 0;
mIconImage = true;
String caption = mContext.getString(R.string.text_tap_to_update);
// Prepare a bundle to update the button text.
Bundle bundle1 = new Bundle();
bundle1.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.btn_update_this);
bundle1.putString(Control.Intents.EXTRA_TEXT, caption);
// Prepare a bundle to update the ImageView image.
Bundle bundle2 = new Bundle();
bundle2.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.image);
bundle2.putString(Control.Intents.EXTRA_DATA_URI,
ExtensionUtils.getUriString(mContext, R.drawable.icon_extension48));
Bundle[] bundleData = new Bundle[2];
bundleData[0] = bundle1;
bundleData[1] = bundle2;
showLayout(R.layout.layout, bundleData);
}