An Introduction To 5G

Bo Huang

Technologist, Samsung Electronics America

The Samsung Galaxy S10 5G has now arrived in the U.S. That means that now is a great time for forward-thinking developers to target this device in anticipation of upcoming growth of 5G technology. As a technologist at Samsung, I am very excited about the possibilities created by 5G, and have been investigating how we can build a foundation to  create 5G apps and games on the S10 5G.

What’s so special about 5G? You may know it’s another generation of network transfer standard faster than the 4G/LTE speed we are used to now. While that is true, it overlooks the extent of the technological advance of this generation. It’s exponentially faster than 4G and has lower latency. These upgrades will both enhance and empower a whole set of technologies previously unfeasible.

As a global leader of 5G devices, we will guide you through upcoming Android APIs and common practices to:

  • Check for and test for 5G capabilities
  • Monitor real-world device connection speed
  • App design considerations to take advantage of 5G speed

For example, the most straight-forward use case of mobile networks is watching videos on the go. Prior to 4G, the slow speed and low resolution supported by 3G resulted in poor experiences. Now 5G enhances the video resolution even further, producing film-like experiences.

However, as is the case in the current 4G era, your device will not always be at 5G. Your connected speed could be affected by a number of factors. What do these varying factors mean to the application developer who’s working with videos? Ideally, depending on the actual connection speed, an appropriately sized video stream should be sent to the user. If instead you always stream the highest definition version, the video will inevitably lag and result in a bad experience.

Don’t worry, as long as you follow the tip below, this won’t be a problem for you or your users. Stating with Android Q, there are capabilities to detect actual connection speed. A developer will use the class:

NetworkCapabilities

While this may seem like another long, complex class with many options, the functions of interest to a 5G developer are:

getLinkDownstreamBandwidthKbps()

This returns downstream bandwidth measured in kilobytes-per-second. A developer can poll this value periodically to gauge actual connection speed. They can then route appropriately-sized streams to the end user.

NetworkCapabilities.NET_CAPABILITY_NOT_METERED

This indicates that the end user has not set, or doesn’t have a connection limitation imposed upon them, thus bandwidth isn’t a cost factor to the end user. If this flag were false, a developer might want to warn the user and give them steps to handle the situation appropriately. Otherwise, the user may misplace blame of any video stoppage on the developer.

The exact strategies of monitoring and switching to non-5G mode are usually the same whether you develop a video app or competitive networked game, with customizations on frequency and indication to the user. Overall, it is not a daunting task and does not interfere with your app’s structure.

At Samsung we are eager to help developers succeed on our platforms. This is only the first of many guides we have planned to assist you in preparing your apps to take advantage of 5G. For more developmental resources on 5G and Samsung in general, please go to developer.samsung.com. We are excited to have you onboard.