某些自定义拨号程序应用程序(例如,来自MotoBlur的拨号程序)能够执行USSD请求。通过SDK做到这一点真的不可能吗?如何在Android上执行USSD请求?
回答
您可以拦截USSD响应,为此,您需要实现IExtendedNetworkService.aidl接口,该接口将服务与PhoneUtils绑定。然后它可以拦截任何USSD响应,并且可以轻松地在您的应用程序中读取该响应。 FYI https://github.com/alaasalman/ussdinterceptor
您可以拨打像任何其他数量的USSD请求与像这样的一个呼叫意图:
String encodedHash = Uri.encode("#");
String ussd = "*" + encodedHash + "12345" + encodedHash;
startActivityForResult(new Intent("android.intent.action.CALL", Uri.parse("tel:" + ussd)), 1);
然而,据我所知,这是目前无法解析您的应用程序的结果字符串。
您可以发送请求,但对于一个应用程序,以获得结果的装置。一些开发者已经要求将其添加到android,但没有迹象表明功能请求已被接受。 – 2011-08-29 01:04:03
但在*之后附加#的原因是什么? – AndroGeek 2013-06-19 06:12:31
这只是实际USSD号码的一部分,因此是本地运营商的实施细节,从不知道 – alexleutgoeb 2015-03-05 16:14:13
希望它为你工作:
String suffix = Uri.encode("#");
String ussd = suffix+"919"+"*"+number+suffix;
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+ ussd));
startActivity(callIntent);
在Android开始Ø有可能发送使用TelephonyManager
USSD请求。
在API26中添加了Ussd API。 如此以来,奥利奥与USSD工作看起来SMT是这样的:
TelephonyManager manager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
manager.sendUssdRequest("*100#", new TelephonyManager.UssdResponseCallback() {
@Override
public void onReceiveUssdResponse(TelephonyManager telephonyManager, String request, CharSequence response) {
super.onReceiveUssdResponse(telephonyManager, request, response);
}
@Override
public void onReceiveUssdResponseFailed(TelephonyManager telephonyManager, String request, int failureCode) {
super.onReceiveUssdResponseFailed(telephonyManager, request, failureCode);
}
}, new Handler());
TelephonyManager manager2 = manager.createForSubscriptionId(subIdForSecondSlotFromSubscriptonManager);
manager2.sendUssdRequest(...);
- 1. 如何在android上运行USSD命令?
- 2. 在android上执行Http请求
- 3. 如何执行Android的RESTful POST请求
- 4. Android - 如何执行HTTP GET请求?
- 5. 如何在Android上的Ionic Framework中执行跨域http请求?
- 6. USSD网关执行
- 7. 如何执行长请求
- 8. 执行一个POST请求在Android的
- 9. 如何在mysql中执行tarantool请求?
- 10. 如何在MongoJS中执行DELETE请求?
- 11. 如何在Haskell中执行HTTPS请求?
- 12. 如何在JMeter中执行Ajax请求?
- 13. 在网站上自动执行请求
- 14. 在每个请求上执行代码
- 15. 如何在Tornado请求中执行Tornado请求
- 16. 如何在Android中执行来自BroadcastReceiver的异步Web请求
- 17. 如何在Android中执行HTTPS POST请求?
- 18. 如何在Android Studio中执行HTTP POST请求?
- 19. 如何在设备即将关闭时执行http请求android
- 20. 如何在Android Volley中执行PUT请求?
- 21. GSM USSD调制解调器请求
- 22. 通过发送ussd请求启动SMS
- 23. 如何查看当前在IIS上执行的Web请求8
- 24. 如何在jQuery Accordion上执行以下ajax请求?
- 25. 如何使用Python请求在Amazon S3上执行`PUT`
- 26. 如何在Laravel 5和AngularJS上执行CORS POST请求?
- 27. 如何在后台线程上执行异步请求?
- 28. 如何在Amazon cloudfront API上执行POST请求
- 29. 如何在Android WebView请求上查看请求标头?
- 30. 来自Android的JSON请求未执行
您可以提供更多关于如何使用它的信息吗? – Majid 2013-06-20 10:46:24
它是否适用于4.2.x? – vach 2013-10-30 10:25:25
由于安全限制(已对PhoneApp代码进行了更改) – 2013-12-02 06:53:48