summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--telephony/java/android/telephony/TelephonyScanManager.java14
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);
}