Example usage for android.telephony TelephonyManager PHONE_TYPE_GSM

List of usage examples for android.telephony TelephonyManager PHONE_TYPE_GSM

Introduction

In this page you can find the example usage for android.telephony TelephonyManager PHONE_TYPE_GSM.

Prototype

int PHONE_TYPE_GSM

To view the source code for android.telephony TelephonyManager PHONE_TYPE_GSM.

Click Source Link

Document

Phone radio is GSM.

Usage

From source file:com.mobilyzer.util.PhoneUtils.java

/** Returns "GSM", "CDMA". */
private String getTelephonyPhoneType() {
    switch (telephonyManager.getPhoneType()) {
    case TelephonyManager.PHONE_TYPE_CDMA:
        return "CDMA";
    case TelephonyManager.PHONE_TYPE_GSM:
        return "GSM";
    case TelephonyManager.PHONE_TYPE_NONE:
        return "None";
    }//  w  ww.jav  a 2  s . c om
    return "Unknown";
}

From source file:org.restcomm.app.utillib.DataObjects.PhoneState.java

public int getNetworkTypeNumber() {
    // Any UMTS based technologies, return 2
    switch (getNetworkType()) {
    case TelephonyManager.NETWORK_TYPE_HSDPA:
    case TelephonyManager.NETWORK_TYPE_HSPA:
    case TelephonyManager.NETWORK_TYPE_HSUPA:
    case TelephonyManager.NETWORK_TYPE_UMTS:
    case NETWORK_NEWTYPE_HSPAP:
        return 2;
    }//from w  w w. j ava2 s  . co m
    if (getPhoneType() == TelephonyManager.PHONE_TYPE_GSM)
        return 1;
    // TODO: Can we detect UMTS and return 2? Otherwise it returns 1 for GSM which is fine
    if (getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA)
        return 3;
    return 0;
}

From source file:com.secupwn.aimsicd.service.CellTracker.java

/**
 *          I removed the timer that activated this code and now the code will be run when
 *          the cell changes so it will detect faster rather than using a timer that might
 *          miss an imsi catcher, also says cpu rather than refreshing every x seconds.
 *
 *          original comments below from xLaMbChOpSx
 *
 *
 *  Description:    (From xLaMbChOpSx commit comment)
 *
 *      Initial implementation for detection method 1 to compare the CID & LAC with the Cell
 *      Information Table contents as an initial implementation for detection of a changed LAC,
 *      once OCID issues (API key use etc) have been finalised this detection method can be
 *      extended to include checking of external data.
 *
 *      REMOVED: refresh timer info// w ww.ja va  2s  .c om
 *
 *      As I have no real way of testing this I require testing by other project members who
 *      do have access to equipment or an environment where a changing LAC can be simulated
 *      thus confirming the accuracy of this implementation.
 *
 *      Presently this will only invoke the MEDIUM threat level through the notification and
 *      does not fully implement the capturing and score based method as per the issue details
 *      once further testing is complete the alert and tracking of information can be refined.
 *
 *      See:
 *        https://github.com/xLaMbChOpSx/Android-IMSI-Catcher-Detector/commit/43ae77e2a0cad10dfd50f92da5a998f9ece95b38
 *        https://github.com/SecUpwN/Android-IMSI-Catcher-Detector/issues/91#issuecomment-64391732
 *
 *  Short explanation:
 *
 *                  This is a polling mechanism for getting the LAC/CID and location
 *                  info for the currently connected cell.
 *
 *  Variables:
 *                  FIXED: now updates on cell change rather than a timer
 *                  There is a "timer" here (REFRESH_RATE), what exactly is it timing?
 *                  "Every REFRESH_RATE seconds, get connected cell details."
 *
 *  Issues:     [ ] We shouldn't do any detection here!
 *              [ ] We might wanna use a listener to do this?
 *                  Are there any reasons why not using a listener?
 *
 *  ChangeLog:
 *              2015-03-03  E:V:A           Changed getProp() to use TinyDB (SharedPreferences)
 *              2015-0x-xx  banjaxbanjo     Update: ??? (hey dude what did you do?)
 *
 */
public void compareLac(CellLocation location) {

    @Cleanup
    Realm realm = Realm.getDefaultInstance();

    switch (device.getPhoneId()) {

    case TelephonyManager.PHONE_TYPE_NONE:
    case TelephonyManager.PHONE_TYPE_SIP:
    case TelephonyManager.PHONE_TYPE_GSM:
        GsmCellLocation gsmCellLocation = (GsmCellLocation) location;
        if (gsmCellLocation != null) {
            monitorCell.setLocationAreaCode(gsmCellLocation.getLac());
            monitorCell.setCellId(gsmCellLocation.getCid());

            // Check if LAC is ok
            boolean lacOK = dbHelper.checkLAC(realm, monitorCell);
            if (!lacOK) {
                changedLAC = true;
                dbHelper.toEventLog(realm, 1, "Changing LAC");

                // Detection Logs are made in checkLAC()
                vibrate(100, Status.MEDIUM);
            } else {
                changedLAC = false;
            }

            if (tinydb.getBoolean("ocid_downloaded")) {
                if (!dbHelper.openCellExists(realm, monitorCell.getCellId())) {
                    dbHelper.toEventLog(realm, 2, "CID not in Import realm");

                    log.info("ALERT: Connected to unknown CID not in Import realm: " + monitorCell.getCellId());
                    vibrate(100, Status.MEDIUM);

                    cellIdNotInOpenDb = true;
                } else {
                    cellIdNotInOpenDb = false;
                }
            }
        }
        break;

    case TelephonyManager.PHONE_TYPE_CDMA:
        CdmaCellLocation cdmaCellLocation = (CdmaCellLocation) location;
        if (cdmaCellLocation != null) {
            monitorCell.setLocationAreaCode(cdmaCellLocation.getNetworkId());
            monitorCell.setCellId(cdmaCellLocation.getBaseStationId());

            boolean lacOK = dbHelper.checkLAC(realm, monitorCell);
            if (!lacOK) {
                changedLAC = true;
                /*dbHelper.insertEventLog(
                        MiscUtils.getCurrentTimeStamp(),
                        monitorCell.getLAC(),
                        monitorCell.getCid(),
                        monitorCell.getPSC(),//This is giving weird values like 21478364... is this right?
                        String.valueOf(monitorCell.getLat()),
                        String.valueOf(monitorCell.getLon()),
                        (int)monitorCell.getAccuracy(),
                        1,
                        "Changing LAC"
                );*/
                dbHelper.toEventLog(realm, 1, "Changing LAC");
            } else {
                changedLAC = false;
            }
        }
    }
    setNotification();
}

From source file:com.compal.telephonytest.TelephonyTest.java

public void InformatonAndStatusCheck() {

    StringBuilder sb = new StringBuilder("");
    boolean hasFailInfo = false;

    if (mTelephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_NONE) {
        sb.append("getPhoneType:" + Integer.toString(mTelephonyManager.getPhoneType()) + "\n");
    } else {//from w ww. j  a  v  a 2s  . co  m
        sb.append("getPhoneType:" + "fail");
        hasFailInfo = true;
    }

    if (mTelephonyManager.getNetworkType() != TelephonyManager.NETWORK_TYPE_UNKNOWN) {
        sb.append("getNetworkType:" + Integer.toString(mTelephonyManager.getNetworkType()) + "\n");
    } else {
        sb.append("getNetworkType:" + "fail");
        hasFailInfo = true;
    }

    String operatorName = mTelephonyManager.getNetworkOperatorName();
    if (operatorName != null && !operatorName.equals("")) { // OperatorName
        sb.append("getNetworkOperatorName:" + mTelephonyManager.getNetworkOperatorName() + "\n");
    } else {
        sb.append("getNetworkOperatorName:" + "fail");
        hasFailInfo = true;
    }

    String serial = Build.SERIAL;
    if (serial != null && !serial.equals("")) { // SerialNumber
        sb.append("get Serial Number:" + serial + "\n");
    } else {
        sb.append("get Serial Number:" + "fail");
        hasFailInfo = true;
    }

    if (mTelephonyManager.getSimState() != TelephonyManager.SIM_STATE_UNKNOWN) {
        sb.append("getSimState:" + Integer.toString(mTelephonyManager.getSimState()) + "\n");
    } else {
        sb.append("getSimState:" + "fail");
        hasFailInfo = true;
    }

    //It's all ok
    sb.append("isNetworkRoaming:" + Boolean.toString(mTelephonyManager.isNetworkRoaming()) + "\n");

    if (mTelephonyManager.getDataState() != TelephonyManager.DATA_DISCONNECTED) {
        sb.append("getDataState:" + Integer.toString(mTelephonyManager.getDataState()) + "\n");
    } else {
        sb.append("getDataState:" + "fail");
        hasFailInfo = true;
    }

    String formatIP = formatIpAddresses(mLinkProperties);
    if (formatIP != null && !formatIP.equals("")) { //IP Address
        sb.append("IP Address:" + formatIpAddresses(mLinkProperties) + "\n");
    } else {
        sb.append("IP Address:" + "fail");
        hasFailInfo = true;
    }

    if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
        if (checkGsmDeviceId(mTelephonyManager.getDeviceId())) {
            sb.append("IMEI:" + mTelephonyManager.getDeviceId() + "\n");
        } else {
            sb.append("IMEI:" + "fail");
            hasFailInfo = true;
        }
    } else {
        sb.append("IMEI:" + "fail");
        hasFailInfo = true;
    }

    Log.i(tag, sb.toString());

    mLog = sb.toString();
    if (!hasFailInfo) {
        Log.i(tag, "test_5th_InformatonAndStatus true");
        outputResult(true, tTelephonyBasicFunc, dBasicInformation, testCaseId);
    } else {
        Log.i(tag, "test_5th_InformatonAndStatus false");
        outputResult(false, tTelephonyBasicFunc, dBasicInformation, testCaseId);
    }

    //Log.i(tag, "getPhoneType:" + Integer.toString(mTelephonyManager.getPhoneType()));
    //Log.i(tag, "getNetworkType:" + Integer.toString(mTelephonyManager.getNetworkType()));
    //Log.i(tag, "getNetworkOperatorName:" + mTelephonyManager.getNetworkOperatorName());
    //Log.i(tag, "getSimSerialNumber:" + mTelephonyManager.getSimSerialNumber());
    //Log.i(tag, "getSimState:" + Integer.toString(mTelephonyManager.getSimState()));
    //Log.i(tag, "isNetworkRoaming:" + Boolean.toString(mTelephonyManager.isNetworkRoaming()));
    //Log.i(tag, "getDataState:" + Integer.toString(mTelephonyManager.getDataState()));   
    //Log.i(tag,"formatIpAddresses(mLinkProperties): " + formatIpAddresses(mLinkProperties));

}

From source file:org.restcomm.app.utillib.Reporters.ReportManager.java

/**
 * @return {@link DeviceInfo} object used to get device properties
 * @throws RuntimeException if phone type is not GSM or CDMA
 *//*  w  ww  .  j a  v  a  2 s. co m*/
public DeviceInfo getDevice() {
    int phoneType = ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType();
    if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
        return new GSMDevice(mContext);
    } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
        return new CDMADevice(mContext);
    } else {
        return new GSMDevice(mContext);
        //throw new RuntimeException("Unsupported phone type");
    }
}

From source file:com.android.bluetooth.map.BluetoothMapContent.java

private void setType(BluetoothMapMessageListingElement e, Cursor c, FilterInfo fi, BluetoothMapAppParams ap) {
    if ((ap.getParameterMask() & MASK_TYPE) != 0) {
        TYPE type = null;//from w w  w  . j av a 2 s .co  m
        if (fi.msgType == FilterInfo.TYPE_SMS) {
            if (fi.phoneType == TelephonyManager.PHONE_TYPE_GSM) {
                type = TYPE.SMS_GSM;
            } else if (fi.phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
                type = TYPE.SMS_CDMA;
            }
        } else if (fi.msgType == FilterInfo.TYPE_MMS) {
            type = TYPE.MMS;
        } else {
            type = TYPE.EMAIL;
        }
        if (D)
            Log.d(TAG, "setType: " + type);
        e.setType(type);
    }
}

From source file:com.secupwn.aimsicd.service.CellTracker.java

/**
 * Add entries to the {@link com.secupwn.aimsicd.data.model.Measure Measure} realm
 *///w w  w .j  av  a 2  s . c  o m
public void onLocationChanged(Location loc) {
    // TODO: See issue #555 (DeviceApi17.java is using API 18 CellInfoWcdma calls.
    if (Build.VERSION.SDK_INT > 17) {
        DeviceApi18.loadCellInfo(tm, device);
    }

    if (!device.cell.isValid()) {
        CellLocation cellLocation = tm.getCellLocation();
        if (cellLocation != null) {
            switch (device.getPhoneId()) {

            case TelephonyManager.PHONE_TYPE_NONE:
            case TelephonyManager.PHONE_TYPE_SIP:
            case TelephonyManager.PHONE_TYPE_GSM:
                GsmCellLocation gsmCellLocation = (GsmCellLocation) cellLocation;
                device.cell.setCellId(gsmCellLocation.getCid()); // CID
                device.cell.setLocationAreaCode(gsmCellLocation.getLac()); // LAC
                device.cell.setPrimaryScramblingCode(gsmCellLocation.getPsc()); // PSC
                break;

            case TelephonyManager.PHONE_TYPE_CDMA:
                CdmaCellLocation cdmaCellLocation = (CdmaCellLocation) cellLocation;
                device.cell.setCellId(cdmaCellLocation.getBaseStationId()); // BSID ??
                device.cell.setLocationAreaCode(cdmaCellLocation.getNetworkId()); // NID
                device.cell.setSid(cdmaCellLocation.getSystemId()); // SID
                device.cell.setMobileNetworkCode(cdmaCellLocation.getSystemId()); // MNC <== BUG!??

                break;
            }
        }
    }

    if (loc != null && (Double.doubleToRawLongBits(loc.getLatitude()) != 0
            && Double.doubleToRawLongBits(loc.getLongitude()) != 0)) {

        device.cell.setLon(loc.getLongitude()); // gpsd_lon
        device.cell.setLat(loc.getLatitude()); // gpsd_lat
        device.cell.setSpeed(loc.getSpeed()); // speed        // TODO: Remove, we're not using it!
        device.cell.setAccuracy(loc.getAccuracy()); // gpsd_accu
        device.cell.setBearing(loc.getBearing()); // -- [deg]??   // TODO: Remove, we're not using it!
        device.setLastLocation(loc); //

        // Store last known location in preference
        SharedPreferences.Editor prefsEditor;
        prefsEditor = prefs.edit();
        prefsEditor.putString(context.getString(R.string.data_last_lat_lon),
                String.valueOf(loc.getLatitude()) + ":" + String.valueOf(loc.getLongitude()));
        prefsEditor.apply();

        // This only logs a BTS if we have GPS lock
        // TODO: Is correct behaviour? We should consider logging all cells, even without GPS.
        if (trackingCell) {
            // This also checks that the locationAreaCode are cid are not in DB before inserting
            @Cleanup
            Realm realm = Realm.getDefaultInstance();
            dbHelper.insertBTS(realm, device.cell);
        }
    }
}

From source file:com.android.bluetooth.map.BluetoothMapContent.java

private void setHandle(BluetoothMapMessageListingElement e, Cursor c, FilterInfo fi, BluetoothMapAppParams ap) {
    long handle = c.getLong(c.getColumnIndex(BaseColumns._ID));
    TYPE type = null;//  w w  w. j  a  v a  2 s .  c o  m
    if (fi.msgType == FilterInfo.TYPE_SMS) {
        if (fi.phoneType == TelephonyManager.PHONE_TYPE_GSM) {
            type = TYPE.SMS_GSM;
        } else if (fi.phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
            type = TYPE.SMS_CDMA;
        }
    } else if (fi.msgType == FilterInfo.TYPE_MMS) {
        type = TYPE.MMS;
    } else {
        type = TYPE.EMAIL;
    }
    if (D && type != null)
        Log.d(TAG, "setHandle: " + handle + " - Type: " + type.name());
    e.setHandle(handle, type);
}

From source file:com.android.bluetooth.map.BluetoothMapContent.java

private boolean smsSelected(FilterInfo fi, BluetoothMapAppParams ap) {
    int msgType = ap.getFilterMessageType();
    int phoneType = fi.phoneType;

    if (msgType == -1)
        return true;
    if ((msgType & 0x03) == 0)
        return true;

    if (((msgType & 0x01) == 0) && (phoneType == TelephonyManager.PHONE_TYPE_GSM))
        return true;

    if (((msgType & 0x02) == 0) && (phoneType == TelephonyManager.PHONE_TYPE_CDMA))
        return true;

    return false;
}

From source file:com.android.bluetooth.map.BluetoothMapContent.java

public byte[] getSmsMessage(long id, int charset) throws UnsupportedEncodingException {
    int type, threadId;
    long time = -1;
    String msgBody;/*from w  w w  .  j  a  va2  s.co m*/
    BluetoothMapbMessageSms message = new BluetoothMapbMessageSms();
    TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);

    Cursor c = mResolver.query(Sms.CONTENT_URI, SMS_PROJECTION, "_ID = " + id, null, null);
    if (c == null || !c.moveToFirst()) {
        throw new IllegalArgumentException("SMS handle not found");
    }

    try {
        if (V)
            Log.v(TAG, "c.count: " + c.getCount());

        if (tm.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
            message.setType(TYPE.SMS_GSM);
        } else if (tm.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
            message.setType(TYPE.SMS_CDMA);
        } else {
            // set SMS_GSM by default
            message.setType(TYPE.SMS_GSM);
        }

        String read = c.getString(c.getColumnIndex(Sms.READ));
        if (read.equalsIgnoreCase("1"))
            message.setStatus(true);
        else
            message.setStatus(false);

        type = c.getInt(c.getColumnIndex(Sms.TYPE));
        threadId = c.getInt(c.getColumnIndex(Sms.THREAD_ID));
        message.setFolder(getFolderName(type, threadId));

        msgBody = c.getString(c.getColumnIndex(Sms.BODY));

        String phone = c.getString(c.getColumnIndex(Sms.ADDRESS));

        time = c.getLong(c.getColumnIndex(Sms.DATE));
        if (type == 1) // Inbox message needs to set the vCard as originator
            setVCardFromPhoneNumber(message, phone, true);
        else // Other messages sets the vCard as the recipient
            setVCardFromPhoneNumber(message, phone, false);

        if (charset == MAP_MESSAGE_CHARSET_NATIVE) {
            if (type == 1) //Inbox
                message.setSmsBodyPdus(BluetoothMapSmsPdu.getDeliverPdus(msgBody, phone, time));
            else
                message.setSmsBodyPdus(BluetoothMapSmsPdu.getSubmitPdus(msgBody, phone));
        } else /*if (charset == MAP_MESSAGE_CHARSET_UTF8)*/ {
            message.setSmsBody(msgBody);
        }
    } finally {
        close(c);
    }

    return message.encode();
}