我正在开发一个Android应用程序,该应用程序接收外出呼叫事件并从中提取目的地址,取消呼叫以执行某个过程,然后重拨自动地址号码自动无需用户意图。找出打出的电话是拨打电话还是拨打数据
问题:我不想处理不是真正的目的地电话地址的目的地号码(即USSD号码,如* 21#,它使某些运营商的某些数据请求)。 如何找出传出目的地是电话还是来自操作员的数据请求(无需维护任何表格)?
我正在开发一个Android应用程序,该应用程序接收外出呼叫事件并从中提取目的地址,取消呼叫以执行某个过程,然后重拨自动地址号码自动无需用户意图。找出打出的电话是拨打电话还是拨打数据
问题:我不想处理不是真正的目的地电话地址的目的地号码(即USSD号码,如* 21#,它使某些运营商的某些数据请求)。 如何找出传出目的地是电话还是来自操作员的数据请求(无需维护任何表格)?
一种可能的方法是,以检查是否号码相匹配的USSD的格式:
典型的USSD消息有*后跟数字哪个 指示要执行的动作或为参数启动。每组 数字之间用*分隔,并且该消息以#结尾。
USSD的最大长度为182个字符。
如果它有星号或英镑符号,那么它可能不是电话号码。我相信所有USSD代码都有英镑符号或星号。 – Jakar 2012-03-27 09:22:27
,但一个真正的电话号码也可以包含星号 - 一个简短的数字,如* 4444。 – Bush 2012-03-27 10:23:19