Fix bug# 1997056
The SID and NID in CDMA_SUBSCRIPTION are in hexadecimal format. So change the parseInt() in CdmaServiceStateTracker and add comments in CommandsInterface. modified: java/com/android/internal/telephony/CommandsInterface.java modified: java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java modified: java/com/android/internal/telephony/RIL.java modified: java/com/android/internal/telephony/CommandsInterface.java modified: java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java modified: java/com/android/internal/telephony/RIL.java
This commit is contained in:
@@ -1225,8 +1225,8 @@ public interface CommandsInterface {
|
||||
* Request the device MDN / H_SID / H_NID / MIN.
|
||||
* "response" is const char **
|
||||
* [0] is MDN if CDMA subscription is available
|
||||
* [1] is H_SID (Home SID) if CDMA subscription is available
|
||||
* [2] is H_NID (Home NID) if CDMA subscription is available
|
||||
* [1] is H_SID (Home SID) in hexadecimal if CDMA subscription is available
|
||||
* [2] is H_NID (Home NID) in hexadecimal if CDMA subscription is available
|
||||
* [3] is MIN (10 digits, MIN2+MIN1) if CDMA subscription is available
|
||||
*/
|
||||
public void getCDMASubscription(Message response);
|
||||
|
||||
@@ -401,11 +401,11 @@ final class CdmaServiceStateTracker extends ServiceStateTracker {
|
||||
// TODO: Only grabbing the first SID/NID for now.
|
||||
if (cdmaSubscription[1] != null) {
|
||||
String[] sid = cdmaSubscription[1].split(",");
|
||||
mHomeSystemId = sid.length > 0 ? Integer.parseInt(sid[0]) : 0;
|
||||
mHomeSystemId = sid.length > 0 ? Integer.parseInt(sid[0], 16) : 0;
|
||||
}
|
||||
if (cdmaSubscription[2] != null) {
|
||||
String[] nid = cdmaSubscription[2].split(",");
|
||||
mHomeNetworkId = nid.length > 0 ? Integer.parseInt(nid[0]) : 0;
|
||||
mHomeNetworkId = nid.length > 0 ? Integer.parseInt(nid[0], 16) : 0;
|
||||
}
|
||||
mMin = cdmaSubscription[3];
|
||||
mPrlVersion = cdmaSubscription[4];
|
||||
|
||||
Reference in New Issue
Block a user