List of usage examples for android.telephony PhoneStateListener LISTEN_SIGNAL_STRENGTHS
int LISTEN_SIGNAL_STRENGTHS
To view the source code for android.telephony PhoneStateListener LISTEN_SIGNAL_STRENGTHS.
Click Source Link
From source file:com.mobilyzer.util.PhoneUtils.java
/** * This method must be called in the service thread, as the system will create a Looper in * the calling thread which will handle the callbacks. *//*from w ww. jav a 2 s .c o m*/ public void registerSignalStrengthListener() { initNetwork(); telephonyManager.listen(new SignalStrengthChangeListener(), PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); }
From source file:com.secupwn.aimsicd.service.CellTracker.java
/** * Description: Updates Neighboring Cell details * * TODO: add more details... * * *//* w w w.ja va2 s .c om*/ public List<Cell> updateNeighboringCells() { List<Cell> neighboringCells = new ArrayList<>(); List<NeighboringCellInfo> neighboringCellInfo = tm.getNeighboringCellInfo(); if (neighboringCellInfo == null) { neighboringCellInfo = new ArrayList<>(); } Boolean nclp = tinydb.getBoolean("nc_list_present"); // NC list present? (default is false) //if nclp = true then check for neighboringCellInfo if (neighboringCellInfo != null && neighboringCellInfo.size() == 0 && nclp) { log.info("NeighboringCellInfo is empty: start polling..."); // Try to poll the neighboring cells for a few seconds neighboringCellBlockingQueue = new LinkedBlockingQueue<>(100); // TODO What is this ?? //LISTEN_CELL_INFO added in API 17 // TODO: See issue #555 (DeviceApi17.java is using API 18 CellInfoWcdma calls. if (Build.VERSION.SDK_INT > 17) { DeviceApi18.startListening(tm, phoneStatelistener); } else { tm.listen(phoneStatelistener, PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_CELL_INFO | // API 17 PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } // TODO: Consider removing ?? for (int i = 0; i < 10 && neighboringCellInfo.size() == 0; i++) { try { log.debug("NeighboringCellInfo empty: trying " + i); NeighboringCellInfo info = neighboringCellBlockingQueue.poll(1, TimeUnit.SECONDS); if (info == null) { neighboringCellInfo = tm.getNeighboringCellInfo(); if (neighboringCellInfo != null) { if (neighboringCellInfo.size() > 0) { // Can we think of a better log message here? log.debug("NeighboringCellInfo found on " + i + " try. (time based)"); break; } else { continue; } } } List<NeighboringCellInfo> cellInfoList = new ArrayList<>( neighboringCellBlockingQueue.size() + 1); while (info != null) { cellInfoList.add(info); info = neighboringCellBlockingQueue.poll(1, TimeUnit.SECONDS); } neighboringCellInfo = cellInfoList; } catch (InterruptedException e) { // TODO: Add a more valuable message here! log.error("", e); } } } //log.debug(mTAG + ": neighboringCellInfo size: " + neighboringCellInfo.size()); // Add NC list to DBi_measure:nc_list for (NeighboringCellInfo neighborCell : neighboringCellInfo) { log.info("NeighboringCellInfo -" + " LAC:" + neighborCell.getLac() + " CID:" + neighborCell.getCid() + " PSC:" + neighborCell.getPsc() + " RSSI:" + neighborCell.getRssi()); final Cell cell = new Cell(neighborCell.getCid(), neighborCell.getLac(), neighborCell.getRssi(), neighborCell.getPsc(), neighborCell.getNetworkType(), false); neighboringCells.add(cell); } return neighboringCells; }
From source file:com.SecUpwN.AIMSICD.service.AimsicdService.java
/** * Updates Neighbouring Cell details/* w w w . j a v a 2 s .c o m*/ */ public List<Cell> updateNeighbouringCells() { List<Cell> neighboringCells = new ArrayList<>(); List<NeighboringCellInfo> neighboringCellInfo; neighboringCellInfo = tm.getNeighboringCellInfo(); if (neighboringCellInfo.size() == 0) { // try to poll the neighboring cells for a few seconds final LinkedBlockingQueue<NeighboringCellInfo> neighboringCellBlockingQueue = new LinkedBlockingQueue<>( 100); final PhoneStateListener listener = new PhoneStateListener() { private void handle() { List<NeighboringCellInfo> neighboringCellInfo; neighboringCellInfo = tm.getNeighboringCellInfo(); if (neighboringCellInfo.size() == 0) { return; } Log.i(TAG, "neighbouringCellInfo empty - event based polling succeeded!"); tm.listen(this, PhoneStateListener.LISTEN_NONE); neighboringCellBlockingQueue.addAll(neighboringCellInfo); } @Override public void onServiceStateChanged(ServiceState serviceState) { handle(); } @Override public void onDataConnectionStateChanged(int state) { handle(); } @Override public void onDataConnectionStateChanged(int state, int networkType) { handle(); } @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { handle(); } @Override public void onCellInfoChanged(List<CellInfo> cellInfo) { handle(); } }; Log.i(TAG, "neighbouringCellInfo empty - start polling"); //LISTEN_CELL_INFO added in API 17 if (Build.VERSION.SDK_INT > 16) { tm.listen(listener, PhoneStateListener.LISTEN_CELL_INFO | PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } else { tm.listen(listener, PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } for (int i = 0; i < 10 && neighboringCellInfo.size() == 0; i++) { try { Log.i(TAG, "neighbouringCellInfo empty - try " + i); NeighboringCellInfo info = neighboringCellBlockingQueue.poll(1, TimeUnit.SECONDS); if (info == null) { neighboringCellInfo = tm.getNeighboringCellInfo(); if (neighboringCellInfo.size() > 0) { Log.i(TAG, "neighbouringCellInfo empty - try " + i + " succeeded time based"); break; } else { continue; } } ArrayList<NeighboringCellInfo> cellInfoList = new ArrayList<NeighboringCellInfo>( neighboringCellBlockingQueue.size() + 1); while (info != null) { cellInfoList.add(info); info = neighboringCellBlockingQueue.poll(1, TimeUnit.SECONDS); } neighboringCellInfo = cellInfoList; } catch (InterruptedException e) { // normal } } } Log.i(TAG, "neighbouringCellInfo Size - " + neighboringCellInfo.size()); for (NeighboringCellInfo neighbourCell : neighboringCellInfo) { Log.i(TAG, "neighbouringCellInfo - CID:" + neighbourCell.getCid() + " LAC:" + neighbourCell.getLac() + " RSSI:" + neighbourCell.getRssi() + " PSC:" + neighbourCell.getPsc()); final Cell cell = new Cell(neighbourCell.getCid(), neighbourCell.getLac(), neighbourCell.getRssi(), neighbourCell.getPsc(), neighbourCell.getNetworkType(), false); neighboringCells.add(cell); } return neighboringCells; }
From source file:at.alladin.rmbt.android.util.InformationCollector.java
/** Returns mobile data network connection type. */ /*// ww w .j a v a 2s . co m * private int getTelephonyNetworkType() { //assert * NETWORK_TYPES[14].compareTo("EHRPD") == 0; * * int networkType = telManager.getNetworkType(); if (networkType < * NETWORK_TYPES.length) { * * } else { return 0; } } */ // Listeners private void registerListeners() { initNetwork(); if (telListener == null) { telListener = new TelephonyStateListener(); telManager.listen(telListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_CELL_LOCATION); } }
From source file:com.SecUpwN.AIMSICD.service.AimsicdService.java
/** * Cell Information Tracking and database logging * * @param track Enable/Disable tracking/*from ww w . j a v a2 s.co m*/ */ public void setCellTracking(boolean track) { if (track) { tm.listen(mCellSignalListener, PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE); if (lm != null) { mLocationListener = new MyLocationListener(); Log.i(TAG, "LocationManager already existed"); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_MIN_UPDATE_TIME, GPS_MIN_UPDATE_DISTANCE, mLocationListener); } else { Log.i(TAG, "LocationManager did not exist"); lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); if (lm != null) { if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) { Log.i(TAG, "LocationManager created"); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_MIN_UPDATE_TIME, GPS_MIN_UPDATE_DISTANCE, mLocationListener); } } } Helpers.msgShort(this, "Tracking cell information"); mTrackingCell = true; } else { tm.listen(mCellSignalListener, PhoneStateListener.LISTEN_NONE); lm.removeUpdates(mLocationListener); mDevice.mCell.setLon(0.0); mDevice.mCell.setLat(0.0); mTrackingCell = false; mDevice.setCellInfo("[0,0]|nn|nn|"); Helpers.msgShort(this, "Stopped tracking cell information"); } setNotification(); }
From source file:pandroid.agent.PandroidAgentListener.java
/** * Retrieves the current cell signal strength in dB *///ww w.j a va 2 s. co m private void getSignalStrength() { TelephonyManager telephone = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); signalListener phoneState = new signalListener(); telephone.listen(phoneState, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); }