/** * Scan available networks. * * @param phone * @param response * @param slotId */ public static void getAvailableNetworks(Phone phone, Message response, int slotId) { Assert.assertNotNull(phone); if (GeminiUtils.isGeminiSupport()) { PhoneLog.d(TAG, "[getAvailableNetworks], slotId = " + slotId); if (GeminiUtils.isValidSlot(slotId)) { ((GeminiPhone) phone).getAvailableNetworksGemini(response, slotId); } } else { phone.getAvailableNetworks(response); } }
/** * Starts a query with a INetworkQueryServiceCallback object if one has not been started * yet. Ignore the new query request if the query has been started already. Either way, * place the callback object in the queue to be notified upon request completion. */ public void startNetworkQuery(INetworkQueryServiceCallback cb) { if (cb != null) { // register the callback to the list of callbacks. synchronized (mCallbacks) { mCallbacks.register(cb); if (DBG) { log("registering callback " + cb.getClass().toString()); } switch (mState) { case QUERY_READY: // TODO: we may want to install a timeout here in case we // do not get a timely response from the RIL. /// M: support gemini phone if (FeatureOption.MTK_GEMINI_SUPPORT) { int msgType = getSimMsgType(mSimId); log("startNetworkQuery---msgType=" + msgType); mGeminiPhone.getAvailableNetworksGemini( mHandler.obtainMessage(msgType), mSimId); } else { mPhone.getAvailableNetworks( mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED)); } mState = QUERY_IS_RUNNING; if (DBG) { log("starting new query"); } break; // do nothing if we're currently busy. case QUERY_IS_RUNNING: if (DBG) { log("query already in progress"); } break; default: break; } } } }