diff options
| -rw-r--r-- | telephony/java/android/telephony/TelephonyScanManager.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/telephony/java/android/telephony/TelephonyScanManager.java b/telephony/java/android/telephony/TelephonyScanManager.java index c905d3a433f3..92a21b6fb85f 100644 --- a/telephony/java/android/telephony/TelephonyScanManager.java +++ b/telephony/java/android/telephony/TelephonyScanManager.java @@ -20,15 +20,18 @@ import static com.android.internal.util.Preconditions.checkNotNull; import android.content.Context; import android.os.Binder; +import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.os.Messenger; +import android.os.Parcelable; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; import android.util.SparseArray; +import java.util.Arrays; import java.util.List; import com.android.internal.telephony.ITelephony; @@ -42,6 +45,9 @@ public final class TelephonyScanManager { private static final String TAG = "TelephonyScanManager"; /** @hide */ + public static final String SCAN_RESULT_KEY = "scanResult"; + + /** @hide */ public static final int CALLBACK_SCAN_RESULTS = 1; /** @hide */ public static final int CALLBACK_SCAN_ERROR = 2; @@ -112,7 +118,13 @@ public final class TelephonyScanManager { switch (message.what) { case CALLBACK_SCAN_RESULTS: try { - callback.onResults((List<CellInfo>) message.obj); + final Bundle b = message.getData(); + final Parcelable[] parcelables = b.getParcelableArray(SCAN_RESULT_KEY); + CellInfo[] ci = new CellInfo[parcelables.length]; + for (int i = 0; i < parcelables.length; i++) { + ci[i] = (CellInfo) parcelables[i]; + } + callback.onResults((List<CellInfo>) Arrays.asList(ci)); } catch (Exception e) { Rlog.e(TAG, "Exception in networkscan callback onResults", e); } |