Using TelephonyManager, we can get cell phone network info; such as Network Operator (MCC+MNC), Network Operator Name, Network Type, Network Country Iso.
Permission READ_PHONE_STATE is required.
Remark:
Getting line number by calling the method getLine1Number() is not always work!
You can check by pressing MENU > Settings > About Phone > Status > My phone nmber = unknown
That means this function have been disabled, even the API is provided.
Permission READ_PHONE_STATE is required.
package com.AndroidTelephonyManager; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.telephony.TelephonyManager; import android.widget.TextView; public class AndroidTelephonyManager extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView textDeviceID = (TextView)findViewById(R.id.deviceid); TextView textNetworkOperator = (TextView)findViewById(R.id.networkoperator); TextView textNetworkOperatorName = (TextView)findViewById(R.id.networkoperatorname); TextView textNetworkType = (TextView)findViewById(R.id.networktype); TextView textNetworkCountryIso = (TextView)findViewById(R.id.networkcountryiso); //retrieve a reference to an instance of TelephonyManager TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); textDeviceID.setText(getDeviceID(telephonyManager)); textNetworkOperator.setText("Network Operator(MCC+MNC): " + telephonyManager.getNetworkOperator()); textNetworkOperatorName.setText("Network Operator Name: " + telephonyManager.getNetworkOperatorName()); textNetworkType.setText("Network Type: " + getNetworkType(telephonyManager)); textNetworkCountryIso.setText("Network Country Iso:" + telephonyManager.getNetworkCountryIso()); } String getNetworkType(TelephonyManager phonyManager){ int type = phonyManager.getNetworkType(); switch(type){ case TelephonyManager.NETWORK_TYPE_UNKNOWN: return "NETWORK_TYPE_UNKNOWN"; case TelephonyManager.NETWORK_TYPE_GPRS: return "NETWORK_TYPE_GPRS"; case TelephonyManager.NETWORK_TYPE_EDGE: return "NETWORK_TYPE_EDGE"; case TelephonyManager.NETWORK_TYPE_UMTS: return "NETWORK_TYPE_UMTS"; case TelephonyManager.NETWORK_TYPE_HSDPA: return "NETWORK_TYPE_HSDPA"; case TelephonyManager.NETWORK_TYPE_HSUPA: return "NETWORK_TYPE_HSUPA"; case TelephonyManager.NETWORK_TYPE_HSPA: return "NETWORK_TYPE_HSPA"; case TelephonyManager.NETWORK_TYPE_CDMA: return "NETWORK_TYPE_CDMA"; case TelephonyManager.NETWORK_TYPE_EVDO_0: return "NETWORK_TYPE_EVDO_0"; case TelephonyManager.NETWORK_TYPE_EVDO_A: return "NETWORK_TYPE_EVDO_0"; /* Since: API Level 9 * case TelephonyManager.NETWORK_TYPE_EVDO_B: * return "NETWORK_TYPE_EVDO_B"; */ case TelephonyManager.NETWORK_TYPE_1xRTT: return "NETWORK_TYPE_1xRTT"; case TelephonyManager.NETWORK_TYPE_IDEN: return "NETWORK_TYPE_IDEN"; /* Since: API Level 11 * case TelephonyManager.NETWORK_TYPE_LTE: * return "NETWORK_TYPE_LTE"; */ /* Since: API Level 11 * case TelephonyManager.NETWORK_TYPE_EHRPD: * return "NETWORK_TYPE_EHRPD"; */ default: return "unknown"; } } String getDeviceID(TelephonyManager phonyManager){ String id = phonyManager.getDeviceId(); if (id == null){ id = "not available"; } int phoneType = phonyManager.getPhoneType(); switch(phoneType){ case TelephonyManager.PHONE_TYPE_NONE: return "NONE: " + id; case TelephonyManager.PHONE_TYPE_GSM: return "GSM: IMEI=" + id; case TelephonyManager.PHONE_TYPE_CDMA: return "CDMA: MEID/ESN=" + id; /* * for API Level 11 or above * case TelephonyManager.PHONE_TYPE_SIP: * return "SIP"; */ default: return "UNKNOWN: ID=" + id; } } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/deviceid" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/networkoperator" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/networkoperatorname" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/networktype" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/networkcountryiso" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
Remark:
Getting line number by calling the method getLine1Number() is not always work!
You can check by pressing MENU > Settings > About Phone > Status > My phone nmber = unknown
That means this function have been disabled, even the API is provided.
gooooooooooood
ReplyDeleteThanks
Delete