Last active
October 14, 2019 07:55
-
-
Save TobiAlbert/726b2d2e4c73de413a6706136f04e602 to your computer and use it in GitHub Desktop.
Makes a request to network provider to get available airtime balance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| private val telephonyManager by lazy { | |
| context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager } | |
| // requires Android v26 | |
| // requries CALL_PHONE permission | |
| private fun requestAirtimeBalance(){ | |
| when (telephonyManager.simState) { | |
| Telephony.SIM_STATE_READY -> dialUssdCode() | |
| else -> Unit | |
| } | |
| } | |
| private fun dialUssdCode() { | |
| val ussdCode = "*556#" // for MTN lines | |
| val callback = object : TelephonyManager.UssdResponseCallback() { | |
| override fun onReceivedUssdResponse( | |
| telephonyManager: TelephonyManager?, | |
| request: String?, | |
| response: CharSequence?){ | |
| super.onReceivedUssdResponse(telephonyManager, request, response) | |
| // Log response data | |
| Log.i("MainActivity", "USSD response: $response") | |
| } | |
| override fun onReceivedUssdResponseFailed( | |
| telephonyManager: TelephonyManager?, | |
| request: String?, | |
| response: CharSequence?){ | |
| super.onReceivedUssdFailed(telephonyManager, request, failure) | |
| // Log response data | |
| Log.i("MainActivity", "USSD response failed: $failure") | |
| } | |
| } | |
| telephonyManager.sendUssdRequest(ussdCode, callback, Handler()) | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment