List of usage examples for android.telephony TelephonyManager getDataState
public int getDataState()
From source file:Main.java
public static int getMobileDataNetworkState(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); return tm.getDataState(); }
From source file:com.fallahpoor.infocenter.fragments.SimFragment.java
private String getDataConnectionState(TelephonyManager telephonyManager) { int dataStateInt = telephonyManager.getDataState(); String dataStateStr;// w w w . j av a 2s.c o m switch (dataStateInt) { case TelephonyManager.DATA_CONNECTED: dataStateStr = getString(R.string.sim_sub_item_data_connected); break; case TelephonyManager.DATA_CONNECTING: dataStateStr = getString(R.string.sim_sub_item_data_connecting); break; case TelephonyManager.DATA_DISCONNECTED: dataStateStr = getString(R.string.sim_sub_item_data_disconnected); break; case TelephonyManager.DATA_SUSPENDED: dataStateStr = getString(R.string.sim_sub_item_data_suspended); break; default: dataStateStr = getString(R.string.unknown); } return dataStateStr; }
From source file:riddimon.android.asianetautologin.HttpUtils.java
/** * Uses TelephonyManager and WifiManager to check for network connectivity. * Also incorporates CONNECTING state for retry scenarios. * @param context/*from ww w . j ava2 s . c om*/ * @return ConnectionStatus */ public ConnectionStatus isConnectedOLD(Context context) { boolean data = false, wifi = false; boolean data_connecting = false, wifi_connecting = false; TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); int ds = tm.getDataState(); int ws = wm.getWifiState(); switch (ds) { case TelephonyManager.DATA_CONNECTED: data = true; break; case TelephonyManager.DATA_CONNECTING: data_connecting = true; default: data = false; data_connecting = false; } switch (ws) { case WifiManager.WIFI_STATE_ENABLING: wifi_connecting = true; case WifiManager.WIFI_STATE_DISABLING: case WifiManager.WIFI_STATE_DISABLED: case WifiManager.WIFI_STATE_UNKNOWN: wifi = false; break; case WifiManager.WIFI_STATE_ENABLED: WifiInfo wi = wm.getConnectionInfo(); if (wi != null) wifi = true; break; } if (wifi && data) return ConnectionStatus.BOTH_CONNECTED; else if (wifi && data_connecting) return ConnectionStatus.WIFI_CONNECTED; else if (data && wifi_connecting) return ConnectionStatus.DATA_CONNECTED; else if (wifi_connecting || data_connecting) return ConnectionStatus.CONNECTING; return ConnectionStatus.NO_CONNECTION; }
From source file:com.prey.PreyPhone.java
public int getDataState() { TelephonyManager tManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE); int dataState = -1; try {/* www . j a v a 2 s. com*/ if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ctx.checkSelfPermission( android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { dataState = tManager.getDataState(); } } else { dataState = tManager.getDataState(); } } catch (Exception e) { PreyLogger.e("Error getDataState:" + e.getMessage(), e); } return dataState; }
From source file:com.intel.xdk.device.Device.java
private String getConnection() { WifiManager wifiMgr = (WifiManager) activity.getSystemService(Context.WIFI_SERVICE); if (wifiMgr.isWifiEnabled() == true) { return "wifi"; }//from w w w . j a v a 2s . com TelephonyManager telMgr = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE); int data = telMgr.getDataState(); if (data == TelephonyManager.DATA_DISCONNECTED || data == TelephonyManager.DATA_SUSPENDED) return "none"; else return "cell"; }
From source file:org.restcomm.app.qoslib.Utils.QosInfo.java
/** * Called Internally to initialize all of the current measurements for every type of connected newtork * This is like a snapshot of everything at this moment in time * The information comes from various sources and it mainly fetched from the database for this call, or from APIs such as WiFi *///from w w w. j a va 2s . c o m private void updateFromDB() { Cursor sig_cursor = null; Cursor cell_cursor = null; try { Uri signalUri = UriMatch.SIGNAL_STRENGTHS.getContentUri(); Uri limitSignalUri = signalUri.buildUpon().appendQueryParameter("limit", "1").build(); // sig_cursor = managedQuery( Provider dbProvider = ReportManager.getInstance(context.getApplicationContext()).getDBProvider(); if (dbProvider == null) { return; } sig_cursor = dbProvider.query(UriMatch.SIGNAL_STRENGTHS.getContentUri(), null, null, null, Tables.TIMESTAMP_COLUMN_NAME + " DESC"); sig_cursor.moveToFirst(); Uri baseStationTable = (UriMatch.BASE_STATIONS .getContentUri()/*telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA ? UriMatchOld.BASE_STATIONS_CDMA.getContentUri() : UriMatchOld.BASE_STATIONS_GSM.getContentUri()*/ ); Uri limitBSUri = baseStationTable.buildUpon().appendQueryParameter("limit", "1").build(); // Cursor cell_cursor = managedQuery( cell_cursor = dbProvider.query(limitBSUri, null, null, null, Tables.TIMESTAMP_COLUMN_NAME + " DESC"); cell_cursor.moveToFirst(); int LowIndex = cell_cursor.getColumnIndex(Tables.BaseStations.BS_LOW); int MidIndex = cell_cursor.getColumnIndex(Tables.BaseStations.BS_MID); int HighIndex = cell_cursor.getColumnIndex(Tables.BaseStations.BS_HIGH); int CodeIndex = cell_cursor.getColumnIndex(Tables.BaseStations.BS_CODE); int BandIndex = cell_cursor.getColumnIndex(Tables.BaseStations.BS_BAND); int ChanIndex = cell_cursor.getColumnIndex(Tables.BaseStations.BS_CHAN); int netTypeIndex = cell_cursor.getColumnIndex(Tables.BaseStations.NET_TYPE); String netType = cell_cursor.getString(netTypeIndex); int bsLow = cell_cursor.getInt(LowIndex); int bsMid = cell_cursor.getInt(MidIndex); int bsHigh = cell_cursor.getInt(HighIndex); int bsCode = cell_cursor.getInt(CodeIndex); int bsBand = cell_cursor.getInt(BandIndex); int bsChan = cell_cursor.getInt(ChanIndex); if (netType.equals("cdma")) { if (LowIndex != -1) BID = bsLow; if (MidIndex != -1) NID = bsMid; if (HighIndex != -1) SID = bsHigh; } else if (netType.equals("gsm")) { if (LowIndex != -1) { RNC = bsMid; CellID = cell_cursor.getInt(LowIndex); } // the network Id is kept 0 for gsm phones if (HighIndex != -1) LAC = bsHigh; if (bsCode > 0 && bsCode < 1000) PSC = bsCode; else PSC = 0; if (bsBand > 0) Band = bsBand; else Band = 0; if (bsChan > 0) Channel = bsChan; else Channel = 0; } if (sig_cursor.getCount() != 0) { int signalIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.SIGNAL); int signal2GIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.SIGNAL2G); int rsrpIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.LTE_RSRP); int rsrqIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.LTE_RSRQ); int lteSnrIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.LTE_SNR); int lteSignalIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.LTE_SIGNAL); int lteCqiIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.LTE_CQI); int ecioIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.ECI0); int ecnoIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.ECN0); int snrIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.SNR); int berIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.BER); int rscpIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.RSCP); int tierIndex = sig_cursor.getColumnIndex(Tables.SignalStrengths.COVERAGE); Integer tier = sig_cursor.isNull(tierIndex) ? null : sig_cursor.getInt(tierIndex); Integer rssi = sig_cursor.isNull(signalIndex) ? null : sig_cursor.getInt(signalIndex); Integer rssi2G = sig_cursor.isNull(signal2GIndex) ? null : sig_cursor.getInt(signal2GIndex); Integer rsrp = sig_cursor.isNull(rsrpIndex) ? null : sig_cursor.getInt(rsrpIndex); Float lteSnr = (sig_cursor.isNull(lteSnrIndex) ? null : (float) sig_cursor.getInt(lteSnrIndex)); Integer lteSignal = sig_cursor.isNull(lteSignalIndex) ? null : sig_cursor.getInt(lteSignalIndex); Integer lteCqi = sig_cursor.isNull(lteCqiIndex) ? null : sig_cursor.getInt(lteCqiIndex); Integer rsrq = sig_cursor.isNull(rsrqIndex) ? null : sig_cursor.getInt(rsrqIndex); Integer eci0 = sig_cursor.isNull(ecioIndex) ? null : sig_cursor.getInt(ecioIndex); Integer ecn0 = sig_cursor.isNull(ecnoIndex) ? null : sig_cursor.getInt(ecnoIndex); Integer snr = sig_cursor.isNull(snrIndex) ? null : sig_cursor.getInt(snrIndex); Integer ber = sig_cursor.isNull(berIndex) ? null : sig_cursor.getInt(berIndex); Integer rscp = sig_cursor.isNull(rscpIndex) ? null : sig_cursor.getInt(rscpIndex); if (eci0 != null && (netType.equals("cdma") || netType.equals("lte")) && eci0 <= -30) eci0 = (eci0 / 10); else if (ecn0 != null && ecn0 > 1 && ecn0 < 60 && netType.equals("gsm")) ecn0 = -(ecn0 / 2); else if (eci0 != null && eci0 > 1 && eci0 < 60 && netType.equals("gsm")) eci0 = -(eci0 / 2); // if (lteSnr != null && lteSnr > 1 && lteSnr < 500) // lteSnr = (lteSnr+5)/10; if (lteSignal != null && lteSignal > -120 && lteSignal < -20) // rssi == lteSignal) { LTE_RSSI = simpleValidate(lteSignal); RSSI = 0; } else if (rssi == null || rssi == -255) RSSI = 0; else if (rssi == -256) RSSI = -256; else { String name = "RSCP: "; int spacing = 15; if (netType.equals("gsm") && (tier == 3 || tier == 4)) { RSCP = rssi; RSSI = 0; } else { RSSI = rssi; RSCP = 0; } LTE_RSSI = 0; } if (netType.equals("cdma") && rssi2G != null && rssi2G < -30 && rssi2G >= -120) CDMA_RSSI = rssi2G; if (tier == 5) { if (lteSnr != null && lteSnr > -101) lteSnr = lteSnr / 10; if (rsrq != null && rsrq > 0) rsrq = -rsrq; LTE_RSRP = simpleValidate(rsrp); LTE_RSRQ = simpleValidate(rsrq); LTE_SNR = simpleValidate(lteSnr); LTE_CQI = simpleValidate(lteCqi); ECIO = simpleValidate(eci0); ECNO = simpleValidate(ecn0); } //nerdview.setValue(0, "RSCP", simpleValidate(rscp, "RSCP", "dBm")); //BER = simpleValidate(ber); SNR = simpleValidate(snr); if (rsrp != null && rsrp <= -10 && rsrp >= -140 && tier == 5) { LTEIdentity = ReportManager.getInstance(context.getApplicationContext()).getNeighbors(); } else { LTEIdentity = null; Neighbors = ReportManager.getInstance(context.getApplicationContext()).getNeighbors(); } } location = ReportManager.getInstance(context.getApplicationContext()).getLastKnownLocation(); try { JSONObject serviceMode = PhoneState.getServiceMode(); if (serviceMode != null && serviceMode.getLong("time") + 5000 > System.currentTimeMillis()) { if (serviceMode.has("rrc") && serviceMode.getString("rrc").length() > 1) { RRC = serviceMode.getString("rrc"); } else RRC = null; if (serviceMode.has("band") && serviceMode.getString("band").length() > 0) { Band = Integer.parseInt(serviceMode.getString("band")); } //else if (serviceMode.has("freq") && serviceMode.getString("freq").length() > 0) { Band = Integer.parseInt(serviceMode.getString("freq")); } else Band = 0; if (serviceMode.has("channel") && serviceMode.getString("channel").length() > 0) { Channel = Integer.parseInt(serviceMode.getString("channel")); } else Channel = 0; } else { RRC = null; Band = 0; Channel = 0; } TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Service.TELEPHONY_SERVICE); String carrier = telephonyManager.getNetworkOperatorName(); String mcc = "0", mnc = "0"; if (telephonyManager.getNetworkOperator() != null && telephonyManager.getNetworkOperator().length() >= 4) { mcc = telephonyManager.getNetworkOperator().substring(0, 3); mnc = telephonyManager.getNetworkOperator().substring(3); } int networkType = telephonyManager.getNetworkType(); int networkTier = PhoneState.getNetworkGeneration(networkType); String nettype = PhoneState.getNetworkName(telephonyManager.getNetworkType()); String data = PhoneState.getNetworkName(telephonyManager.getNetworkType()) + " "; int dataState = telephonyManager.getDataState(); if (dataState == TelephonyManager.DATA_CONNECTED) { String activity = getActivityName(telephonyManager.getDataActivity()); data += activity; } else if (telephonyManager.getNetworkType() != TelephonyManager.NETWORK_TYPE_UNKNOWN) { String state = getStateName(telephonyManager.getDataState()); data += state; } Data = data; Carrier = carrier; Date date = new Date(System.currentTimeMillis()); final String dateStr = DateFormat.getDateFormat(context).format(date); final String timeStr = dateStr + " " + DateFormat.getTimeFormat(context).format(date); Time = timeStr; MCC = Integer.parseInt(mcc); MNC = Integer.parseInt(mnc); // Tell the service we're watching the signal, so keep it updated Intent intent = new Intent(CommonIntentActionsOld.VIEWING_SIGNAL); context.sendBroadcast(intent); WifiInfo wifiinfo = getWifiInfo(); WifiConfiguration wifiConfig = getWifiConfig(); setWifi(wifiinfo, wifiConfig); // Instantiate only the relevant Network type if (netType.equals("cdma")) connectedNetwork = CDMAInfo = new CDMAInfo(this); else if (netType.equals("gsm") && networkTier < 3) connectedNetwork = GSMInfo = new GSMInfo(this); else if (netType.equals("gsm") && networkTier < 5) connectedNetwork = WCDMAInfo = new WCDMAInfo(this); if (networkTier == 5) // LTE connectedNetwork = LTEInfo = new LTEInfo(this); if (wifiConfig != null) connectedNetwork = WiFiInfo = new WIFIInfo(this); // The most relevant network ends up in NetworkInfo } catch (Exception e) { } } catch (Exception e) { LoggerUtil.logToFile(LoggerUtil.Level.ERROR, TAG, "updateNerdViewFromDB", "exception querying signal data: " + e.getMessage()); } finally { if (cell_cursor != null) cell_cursor.close(); if (sig_cursor != null) sig_cursor.close(); } }
From source file:org.restcomm.app.qoslib.Services.Events.EventManager.java
/** * At the start of the event, stores like-timestamped entries in the tables for signals, cells and locations * This is so that querying the timespan of the event recording will easily return records for the beginning of the event * among other things/*w w w. j av a2 s. c om*/ * @param event */ public void signalSnapshot(EventObj event) { // In case the signal hasn't changed recently (last 30 sec or so), // the signal won't be retrieved by the cursor unless we timestamp the last known signal now try { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); // Update the database and intents with a snapshot of the last known signal, cell, location SignalEx signal = context.getPhoneState().getLastMMCSignal(); long timestamp = System.currentTimeMillis(); if (event != null) timestamp = event.getEventTimestamp(); if (signal != null) { signal.setTimestamp(timestamp); context.getPhoneState().clearLastMMCSignal(); // to force a duplicate signal to be added context.getPhoneStateListener().processNewMMCSignal(signal); } CellLocationEx cell = context.getPhoneStateListener().getLastCellLocation(); if (cell != null) { cell.setCellIdTimestamp(timestamp); context.getPhoneStateListener().clearLastCellLocation(); context.getPhoneStateListener().processNewCellLocation(cell); } if (event == null) return; ongoingEvents.add(event); Location location = context.getLastLocation(); int satellites = context.getLastNumSatellites(); if (location != null) { location.setTime(timestamp); context.setLastLocation(null); // to force a duplicate location to be added context.processNewFilteredLocation(location, satellites); } // set an initial location on the event if it is recent, but update it if a better location becomes available location = context.getLastLocation(); event.setSignal(context.getPhoneState().getLastMMCSignal()); event.setCell(context.getPhoneStateListener().getLastCellLocation()); event.setServiceState(context.getPhoneState().getLastServiceStateObj()); if (location != null && location.getTime() - 10000 > System.currentTimeMillis()) event.setLocation(location, context.getLastNumSatellites()); // Also, set the coverage flags at the time of the event int tier = context.getPhoneState().getNetworkGeneration(); int servicestate = context.getPhoneState().getLastServiceState(); int datastate = telephonyManager.getDataState(); int activeConnection = PhoneState.ActiveConnection(context); if (activeConnection == 10) event.setFlag(EventObj.SERVICE_WIFI, true); else if (activeConnection == 11) event.setFlag(EventObj.SERVICE_WIMAX, true); ReportManager reportManager = ReportManager.getInstance(context); if (reportManager.manualPlottingEvent != null || event.getEventType() == EventType.MAN_PLOTTING) event.setFlag(EventObj.MANUAL_SAMPLES, true); if (datastate == TelephonyManager.DATA_CONNECTED || activeConnection > 1) event.setFlag(EventObj.SERVICE_DATA, true); else if (datastate == TelephonyManager.DATA_SUSPENDED && servicestate == ServiceState.STATE_IN_SERVICE) // not counted as data outage if data turned off event.setFlag(EventObj.SERVICE_DATA, true); else event.setFlag(EventObj.SERVICE_DATA, false); if (servicestate == ServiceState.STATE_OUT_OF_SERVICE || servicestate == ServiceState.STATE_EMERGENCY_ONLY) event.setFlag(EventObj.SERVICE_VOICE, false); else event.setFlag(EventObj.SERVICE_VOICE, true); if (tier > 2) event.setFlag(EventObj.SERVICE_3G, true); if (tier > 4) event.setFlag(EventObj.SERVICE_4G, true); if (context.getPhoneState().isCallConnected() || context.getPhoneState().isCallDialing() || event.getEventType().getIntValue() <= 6) event.setFlag(EventObj.PHONE_INUSE, true); // dropped call detection support using logcat or precise call state? if (event.getEventType().getIntValue() <= 7) { String pname = context.getPackageName(); int permissionForReadLogs = context.getPackageManager() .checkPermission(android.Manifest.permission.READ_LOGS, pname); //0 means allowed int permissionForPrecise = context.getPackageManager() .checkPermission("android.permission.READ_PRECISE_PHONE_STATE", pname); // 0 means allowed if (permissionForPrecise == 0) event.setFlag(EventObj.CALL_PRECISE, true); else if (permissionForReadLogs == 0) event.setFlag(EventObj.CALL_LOGCAT, true); } event.setBattery(DeviceInfoOld.battery); if (event.getEventType() == EventType.COV_VOD_NO || event.getEventType() == EventType.COV_VOD_YES || event.getEventType() == EventType.COV_UPDATE || event.getEventType() == EventType.TRAVEL_CHECK) { long duration = 0; if (mLastServiceStateChangeTimeStamp != 0) { duration = System.currentTimeMillis() - mLastServiceStateChangeTimeStamp; mLastServiceStateChangeTimeStamp = System.currentTimeMillis(); event.setDuration(duration); } else duration = mLastScreenOffDuration; } if (event.getEventType() == EventType.COV_3G_NO || event.getEventType() == EventType.COV_3G_YES || event.getEventType() == EventType.COV_UPDATE || event.getEventType() == EventType.TRAVEL_CHECK) { long duration = 0; if (mLast3GStateChangeTimeStamp != 0) { duration = System.currentTimeMillis() - mLast3GStateChangeTimeStamp; if (event.getEventType() == EventType.COV_UPDATE || event.getEventType() == EventType.TRAVEL_CHECK) event.setEventIndex(duration); else event.setDuration(duration); mLast3GStateChangeTimeStamp = System.currentTimeMillis(); } } //context.getCellHistory ().snapshotHistory(); String conn = context.getConnectionHistory().updateConnectionHistory(telephonyManager.getNetworkType(), telephonyManager.getDataState(), telephonyManager.getDataActivity(), context.getPhoneState().getLastServiceStateObj(), context.getConnectivityManager().getActiveNetworkInfo()); context.getIntentDispatcher().updateConnection(conn, true); WifiInfo wifiinfo = getWifiInfo(); WifiConfiguration wifiConfig = getWifiConfig(); event.setWifi(wifiinfo, wifiConfig); localReportEvent(event); } catch (Exception e) { LoggerUtil.logToFile(LoggerUtil.Level.DEBUG, TAG, "signalSnapshot", "error", e); } }