With Android Oreo making more news in the tech field than anything else, it is hard to not notice the features that the update is coming up with. And one of the most recent features that the update has launched is regarding USSD messages.
What is a USSD message in Android Oreo?
USSD is a protocol for sending data through GSM, similar to SMS. It’s most commonly used for callback services, checking data/minutes, interactive news, ringtone selling, and even payment methods. It’s a bare-bones service that’s available universally in smartphones and feature phones alike. Moreover, its reliability is the main reason why USSD hasn’t changed one bit since GSM was first implemented in 1991.
While they have been always present in any Android dialer app, USSD messages appear as a dialog or basic, system themed menus. No other apps could interact with these USSD messages, at least until now.
What’s new with regards to Android Oreo and USSD messages?
With Android Oreo, a new class has been added that allows apps to interact with USSD requests. The TelephonyManager.UssdResponseCallback class is used to notify callers of sendUssdRequest when the network successfully completes a USSD request or if there was a failure while completing the request. In these cases, onReceiveUssdResponse will be called if the request was successfully completed and onReceiveUssdResponseFailed will be called if the request fails.
While the system will still manage all USSD messages with the existing implementation, this should be a starting point for app developers to start interacting with USSD requests. And considering that in previous Android versions the only way to read USSD messages was to implement a performance-heavy Accessibility Service to read all window content, this new API is now a much more clean way of accessing these messages.
There is currently no replacement for the USSD protocol, and given how much information your carrier offers about your mobile plan through USSD codes, this new API will find great use in the future. For instance, reading USSD code responses offer much more accurate information about your current data plan than Android’s native data reporting system. That’s because the native system can’t take into account some nuances.