原生拨号盘设置电信卡呼叫转移概率失败

后面的项目可能不会遇到这个问题了。因为这个bug应该会被订正了。

先说问题现象吧。插电信卡概率性出现呼叫转移失败。插拔卡比较容易出现。

此界面为插电信卡,关闭enhanced4g的前提下测试。 Volte卡和非Volte卡都会概率出现。

此种情况呼叫转移设置路径:拨号盘-》设置-》calling accounts-》点击电信卡-》CDMA call settings-》call forwarding->Always forward->Activate.

正常界面:比如转移到120,则会拨出*72120.

而有问题的界面如下;终端直接拨120出去了。

问题在哪里呢?仔细看下面成功和失败的菜单比较图:

实际上在没有Activate界面前,在Always forward 界面,成功和失败的界面就存在差异了。失败的没有红框中的*72字符串。

对比成功失败的log也可以发现,成功的可以获取deact num,失败的获取不了。:

成功的log:
10-16 16:41:21.670   D CdmaCallForwardOptions: Inside CF options, Getting subscription = 2147483647
10-16 16:41:21.681   D CdmaCallForwardOptions: subid:2147483647 call option on type: 0 Getting deact num =*720
失败的log:
10-16 16:41:59.646   D CdmaCallForwardOptions: Inside CF options, Getting subscription = 2147483647
10-16 16:41:59.656   D CdmaCallForwardOptions: subid:2147483647 call option on type: 0 Getting deact num =

奇怪的是subid 都是2147483647-太大了吧? 根据此subid获取的sub info是null。一个能获取deact num。一个不能获取deact num。成功失败的subid都是一样的,可能是subid的问题么?

还是看看subid从什么获取的吧。如下图,是从intent中获取SUBSCRIPTION_KEY的extra。

拉起call forward设置界面的代码如下图红框:

果真,竟然,真的没有传SUBSCRIPTION_KEY!

修改是比较容易的:

猜你喜欢

转载自blog.csdn.net/dreamfly130/article/details/83105107
今日推荐