简体   繁体   中英

Sony SmartWatch Control Extension, displaying a view from my App

I would like to display the output (a bitmap) of my existing App XYZ on my Smartwatch. I understand, that the Control API is the way to go, but the existing examples from the Sony SDK and the OpenSource projects (8Game and MusicPlayer) aren't clear to me. Am I right in the assumption, that I need following classes integrated into my existing App?

  • MyControlWatch.java
  • MyExtensionReceiver.java
  • MyExtensionService.java
  • MyRegistrationInformation.java

What else do I need and how do I get the SmartWatch to display my bitmap? Do I have to send a CONTROL_START_REQUEST_INTENT and, if yes, from where should I do that? What do I have to change from the given SampleControlExtension to get my result?

Yes, those are the classes you will need to display your Control Extension. You don't need to send CONTROL_START_REQUEST_INTENT necessarily. That is only if you want to start your Control Extension from another extension.

Look in the sample code in the SampleControlSmartWatch.java class included in the /samples directory of the SDK. Check the Animation() class constructor for an example. Essentially you need to create a layout then add your bitmap then call showBitmap().

Sony should create mini tutorials as usable for things like this uu

/** * This is an example of how to update the entire layout and some of the * views. For each view, a bundle is used. This bundle must have the layout * reference, ie the view ID and the content to be used. This method * updates an ImageView and a 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);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM