Merge "Fix the issue on reading cardId." into pi-dev
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index d0f50c7..1537471 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -4135,12 +4135,20 @@
         enforceReadPrivilegedPermission();
 
         UiccSlot[] slots = UiccController.getInstance().getUiccSlots();
-        if (slots == null) return null;
+        if (slots == null) {
+            Rlog.i(LOG_TAG, "slots is null.");
+            return null;
+        }
+
         UiccSlotInfo[] infos = new UiccSlotInfo[slots.length];
         for (int i = 0; i < slots.length; i++) {
             UiccSlot slot = slots[i];
 
-            String cardId = UiccController.getInstance().getUiccCard(i).getCardId();
+            String cardId = null;
+            UiccCard card = slot.getUiccCard();
+            if (card != null) {
+                cardId = card.getCardId();
+            }
 
             int cardState = 0;
             switch (slot.getCardState()) {