`

TelephonyManager获取电信网络和手机信息

 
阅读更多

添加权限

 

<uses-permission
		android:name="android.permission.READ_PHONE_STATE" />
 

 

private TelephonyManager telMgr;

	private SimpleAdapter listItemAdapter; // ListView的适配器
	private ArrayList<HashMap<String, Object>> listItem; // ListView的数据源,这里是一个HashMap的列表
	private ListView myList; // ListView控件

	@SuppressWarnings("static-access")
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.phone_info);

		telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); /* 将取得的信息写入List中 *//* 取得手机电话号码 */

		listItem = new ArrayList<HashMap<String, Object>>();
		listItemAdapter = new SimpleAdapter(this, listItem,
				R.layout.list_item4, new String[] { "title", "text" },
				new int[] { R.id.title, R.id.text });
		myList = (ListView) findViewById(R.id.listView1);
		myList.setAdapter(listItemAdapter);

		if (telMgr.getLine1Number() != null) {
			addItem("手机电话号码" ,telMgr.getLine1Number());
		} else {
			addItem("手机电话号码" ,"无法取得");
		} 
		
		/* 取得电信网络国别 */

		if (telMgr.getNetworkCountryIso().equals("")) {
			addItem("电信网络国别" ,"无法取得");
		} else {
			addItem("电信网络国别" ,telMgr.getNetworkCountryIso());
		} 
		
		/* 取得电信公司代码 */

		if (telMgr.getNetworkOperator().equals("")) {
			addItem("电信公司代码 " ,"无法取得");
		} else {
			addItem("电信公司代码 " ,telMgr.getNetworkOperator());
		} 
		
		/* 取得电信公司名称 */

		if (telMgr.getNetworkOperatorName().equals("")) {
			addItem("电信公司名称" ,"无法取得");
		} else {
			addItem("电信公司名称 " ,telMgr.getNetworkOperatorName());
		} 
		
		/* 取得行动通讯类型 */
		if (telMgr.getPhoneType() == telMgr.PHONE_TYPE_GSM) {
			addItem("行动通讯类型" ,"GSM");
		} else {
			addItem("行动通讯类型" ,"未知");
		} 
		
		/* 取得网络类型 */

		if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_EDGE) {
			addItem("网络类型 " ,"EDGE");
		} else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_GPRS) {
			addItem("网络类型" ,"GPRS");
		} else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_UMTS) {
			addItem("网络类型" ,"UMTS");
		} else if (telMgr.getNetworkType() == 4) {
			addItem("网络类型" ,"HSDPA");
		} else {
			addItem("网络类型" ,"未知");
		} 
		
		/* 取得漫游状态 */
		if (telMgr.isNetworkRoaming()) {
			addItem("漫游状态" ,"漫游中");
		} else {
			addItem("漫游状态" ,"无漫游");
		} 
		
		/* 取得手机IMEI */
		addItem("手机IMEI" ,telMgr.getDeviceId()); 
		
		/* 取得IMEI SV */
		if (telMgr.getDeviceSoftwareVersion() != null) {
			addItem("IMEI号码" ,telMgr.getDeviceSoftwareVersion());
		} else {
			addItem("IMEI号码" ,"无法取得");
		} 
		
		/* 取得手机IMSI */
		if (telMgr.getSubscriberId() != null) {
			addItem("手机IMSI号码" ,telMgr.getSubscriberId());
		} else {
			addItem("手机IMSI号码" ,"无法取得");
		} 
		
		/* 取得ContentResolver */
		ContentResolver cv = PhoneInfo.this.getContentResolver();
		String tmpS = ""; /* 取得蓝芽状态 */
		tmpS = android.provider.Settings.System.getString(cv,
				android.provider.Settings.System.BLUETOOTH_ON);
		if (tmpS.equals("1")) {
			addItem("手机蓝牙状态" ,"已开启");
		} else {
			addItem("手机蓝牙状态" ,"未开启");
		} 
		
		/* 取得WIFI状态 */
		tmpS = android.provider.Settings.System.getString(cv,
				android.provider.Settings.System.WIFI_ON);
		if (tmpS.equals("1")) {
			addItem("手机WIFI状态" ,"已开启");
		} else {
			addItem("手机WIFI状态" ,"未开启");
		} 
		
		/* 取得飞行模式是否开启 */
		tmpS = android.provider.Settings.System.getString(cv,
				android.provider.Settings.System.AIRPLANE_MODE_ON);
		if (tmpS.equals("1")) {
			addItem("飞行模式" ,"开启中");
		} else {
			addItem("飞行模式" ,"未开启");
		} 
		
		/* 取得数据漫游是否开启 */
		tmpS = android.provider.Settings.System.getString(cv,
				android.provider.Settings.System.DATA_ROAMING);
		if (tmpS.equals("1")) {
			addItem("数据漫游" ,"开启中");
		} else {
			addItem("数据漫游" ,"未开启");
		}
	}

	private void addItem(String title, String str) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("title", title);
		map.put("text", str);
		listItem.add(map);
		listItemAdapter.notifyDataSetChanged();
	}

 

  • 大小: 90 KB
分享到:
评论

相关推荐

    移动联通电信获取基站数据库的专项方案.doc

    在移动联通电信获取基站数据库的专项方案中,我们可以通过TelephonyManager获取基站信息。TelephonyManager提供了getCellLocation方法,用于获取当前基站信息。然而,getCellLocation方法返回的是抽象类CellLocation...

    取得电信网络与手机的相关信息

    在Android开发中,获取电信网络和手机的相关信息是常见的需求,这涉及到系统服务的使用,特别是`TelephonyManager`和`System`类。这两个关键组件提供了丰富的接口来获取设备的各种状态信息,帮助开发者构建功能丰富...

    用Java解析手机号获取手机信息(归属地、Sim卡类型、移动或是联通、区号、邮编)

    在Java编程领域,有时我们需要获取手机号的相关信息,如归属地、SIM卡类型、运营商(移动或联通)、区号和邮编等。这通常涉及到手机号码的解析和查询工作。在这个场景下,我们可以利用公开的API或者数据库来实现这些...

    Android之TelephonyManager类的方法详解

    其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。 TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来...

    电信设备-实现Android手机信息读取的方法.zip

    在Android系统中,读取手机信息是开发过程中常见的需求,比如获取IMEI号、SIM卡信息、运营商信息、网络状态等。本资料将详细介绍如何在Android应用中实现这些功能,帮助开发者更好地理解和操作电信设备。 一、获取...

    Android中TelephonyManager用法实例

    其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。 TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得...

    获取手机IMEI号,sim卡的IMSI号C#源码

    总之,通过C#获取IMEI号和IMSI号涉及到对移动设备硬件和网络通信的理解,以及对相应平台API的熟悉。在开发过程中,需要遵守隐私法规,确保用户数据的安全。`MobileCore.cs`和`TapiLib.dll`是实现这些功能的关键组件...

    SIM_java_运营商代号_

    `TelephonyManager`是Android提供的一个系统服务,它提供了获取设备电话状态和相关信息的方法。要获取运营商代号,我们可以调用`getNetworkOperator()`方法。这个方法返回的是MCC(Mobile Country Code)和MNC...

    Android中TelephonyManager类的方法实例分析

    其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。 TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得...

    android 查询手机话费源代码

    3. **运营商识别**:在Android系统中,可以通过`TelephonyManager`类获取手机当前的SIM卡信息,包括运营商名称。这可以帮助我们判断是电信、联通还是移动,以便调用相应的查询接口。 ```java TelephonyManager ...

    android定位之基站定位

    - **TelephonyManager**:提供了一系列访问手机通讯相关信息的方法,包括SIM卡状态、电信网络状态及用户信息等。通过这个类可以获取基站信息。 - **GsmCellLocation**:封装了从TelephonyManager获取到的基站信息。 ...

    号码归属地查询

    7. **权限管理**:在Android系统中,访问电话信息和网络数据需要相应的权限。开发者需要在AndroidManifest.xml中声明权限,并在运行时适当地请求用户授权。 8. **性能优化**:对于大量查询,性能优化至关重要。可能...

    Android判断网络类型的方法(2g,3g还是wifi)

    接下来,我们需要获取到当前活动的网络连接信息,这可以通过调用`ConnectivityManager`的`getActiveNetworkInfo()`方法完成: ```java NetworkInfo info = connectMgr.getActiveNetworkInfo(); ``` 在进行网络类型...

    Android网络工具类NetworkUtils详解

    这个方法通常会使用 `TelephonyManager` 类的 `getNetworkOperatorName()` 方法,以获取当前设备所连接的移动网络运营商名称。 7. **获取移动终端类型(getPhoneType)**: `getPhoneType` 方法将返回设备的电话...

    Android呼叫转移代码

    在电信领域,呼叫转移通过特定的控制信号进行,这些信号由手机发送到网络,指示网络将呼叫重定向到指定的号码。在Android应用中,我们可以利用电话管理器(TelephonyManager)类来发送这些控制信号。 `...

    The Java API to Android’s Telephony Stack

    根据提供的文件信息,本文将深入探讨Android系统的电话功能实现机制,特别是通过Java API与Android的Telephony Stack(电信栈)的交互方式。由于这是一篇技术性较强的文章,我们将从基本概念入手,逐步深入到技术...

    GsmConnection.rar_andriod

    2. **TelephonyManager**:`TelephonyManager`是获取手机状态(如SIM卡信息、运营商信息、网络状态等)以及执行操作(如拨打电话)的主要入口。应用可能通过`getSystemService(TelephonyManager.class)`获取其实例。...

    Android判断用户2G/3G/4G移动数据网络

    通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 wifi 还是 mobile ,如果是 mobile ,可以通过 NetworksInfo 对象的 ...

    CallTracker.rar_android

    开发者可能会通过实现`PhoneStateListener`的回调方法,如`onCallStateChanged(int state, String incomingNumber)`来获取这些信息。 4. **电话状态**: `PhoneStateListener`提供的`onCallStateChanged`方法中,`...

Global site tag (gtag.js) - Google Analytics