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.
No comments:
Post a Comment