Cross device SDK

The Cross device SDK simplifies the development of rich and engaging multi-device experiences. This SDK is part of our larger multi-device development toolkit that includes emulator support, profiling, and more. The Cross device SDK enables the following core functionality:

  • Device discovery and authorization
  • Secure connections and data transfers
  • Multi-device sessions

Some examples of applications and experiences that you can build using this SDK include multiplayer gaming, seamless switching between devices in productivity apps, and group food ordering.

When developing the Cross device SDK, we followed three basic principles to create an abstraction layer that safely and respectfully accelerates the development of multi-device apps and experiences. Those principles are:

  • Ubiquitous: The SDK should work on every device possible, starting with phones and tablets.
  • Modular: Developers should be able to mix the SDK with other solutions.
  • Empowering: The SDK does not restrict you to specific cross-device experiences, but rather allows you to build your own features and experiences.

Use cases

When discussing cross-device use cases, we consider two main categories: personal and communal experiences.

Personal experiences

Personal experiences are built around a single user identity on multiple devices, such as mobile phones, watches, TVs, and/or cars. These experiences help users more effectively connect the various devices they own. For instance:

  • Complete a movie rental or purchase on your TV by using your phone to enter your form of payment.
  • Start reading a long article on your phone and finish reading it on your tablet without losing your place.

Communal experiences

Communal experiences are enjoyed between a user and others around them. For example:

  • Share a map location as a passenger directly with your friend’s car.
  • Share your Sunday bike route with others that you’re biking with.
  • Collect items for a group food order without passing your phone around.
  • Take a group vote for the next TV show to watch together.

Media and other experiences

There are also multi-device experiences, such as continuous media controls and authentication, that could prompt discovering devices and passing data between participants. For these use cases, we have existing frameworks and SDKs that might be a better fit:

Together with the Cross device SDK, these APIs and technologies allow you to build unique and seamless multi-device user experiences in your apps.

Developer Preview limitations

As this is a Developer Preview version of the SDK, note the following:

  • The API surfaces are subject to change.
  • The Cross device SDK is NOT to be used in production applications.

Currently supported platforms and surfaces are limited to Android mobile and tablet devices.

We encourage you to share your feedback and suggestions. Please submit bug reports here.

How it works

The Cross device SDK is a software abstraction layer that enables both platform-driven and developer-driven multi-device experiences by leveraging various wireless technologies such as Bluetooth, Wi-Fi, and ultra-wideband. This abstraction allows developers to focus on the most important parts of the user experience while the SDK handles underlying aspects of platform capabilities, device discovery, authentication, and compatibility.

Cross device SDK architecture.
Figure 1: Cross device SDK architecture.

For most application developers, we recommend using the Multi-Device Sessions API. This API allows app user experiences to be transferred to or shared with other devices. However, if you need more granularity or customization for your cross-device experiences, the standalone Device Discovery and Secure Connections APIs are available.

The Cross device SDK is open-source and will be available for different Android surfaces and non-Android ecosystem devices (Chrome OS, Windows, iOS). The goal of the SDK is to leverage existing technologies and platform capabilities while simplifying the development of multi-device experiences for app developers.