class UssdModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
override fun getName(): String {
return "UssdModule"
}
@ReactMethod
fun openUssdDialog(ussdCode: String) {
val encodedUssdCode = Uri.encode(ussdCode)
val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:$encodedUssdCode"))
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
currentActivity?.startActivity(intent)
}
}
Android 没有 USSD API。对于任何拨号器应用程序都不需要与 USSD 一起使用(请记住,拨号器应用程序是一个应用程序,可能会更改)。不建议在 Android 应用程序中使用 USSD,因为它是否有效将取决于 OEM 安装的应用程序、客户是否安装了自定义拨号器,以及最终让它与您的任何设备兼容。由于不存在 API,我们将不得不做一些 hacky 的事情。
实际上 - USSD 是一种死技术。它存在于数据时代之前,提供有限的网络调用能力。在现代,每部手机都有数据,通过网络服务使用它没有任何优势。