Android菜鸟的成长笔记(23)——获取网络和SIM卡信息

来源:互联网 发布:建筑业收据单软件 编辑:程序博客网 时间:2024/04/28 16:41

TelephonyManager是一个管理手机通话状态、电话网络信息的服务类,该类提供了大量的getXxx()方法来获取电话网络的相关信息。这些信息包括设备编号、软件版本、网络运营商代号、网络运营商名称、手机制式、设备当前位置、SIM卡的国别、SIM卡序列号等。

下面来实际看一下:

MainActivity.java

package com.example.telephonymanager;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.telephony.TelephonyManager;import android.widget.ListView;import android.widget.SimpleAdapter;public class MainActivity extends Activity {ListView showView;//声明代表状态名的数组String[] statusNames;//声明代表手机状态的集合ArrayList<String> statusValues = new ArrayList<String>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);//获取系统的TelephonyManager对象TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);//获取各种状态名称的数组statusNames = getResources().getStringArray(R.array.statusNames);//获取代表SIM卡状态的数组String[] simState = getResources().getStringArray(R.array.simState);//获取代表电话网络类型的数组String[] phoneType = getResources().getStringArray(R.array.phoneType);//获取设备编号statusValues.add(tManager.getDeviceId());//获取系统平台的版本statusValues.add(tManager.getDeviceSoftwareVersion()!=null?tManager.getDeviceSoftwareVersion():"未知");//获取网络运营商代号statusValues.add(tManager.getNetworkOperator());//获取网络运营商名称statusValues.add(tManager.getNetworkOperatorName());//获取手机网络类型statusValues.add(phoneType[tManager.getPhoneType()]);//获取设备所在未知statusValues.add(tManager.getCellLocation() != null ? tManager.getCellLocation().toString() : "未知位置" );//获取SIM卡的国别statusValues.add(tManager.getSimCountryIso());//获取SIM卡状态statusValues.add(simState[tManager.getSimState()]);// 获得ListView对象showView = (ListView) findViewById(R.id.show);ArrayList<Map<String, String>> status = new ArrayList<Map<String, String>>();// 遍历statusValues集合,将statusNames、statusValues// 的数据封装到List<Map<String , String>>集合中for (int i = 0; i < statusValues.size(); i++){HashMap<String, String> map = new HashMap<String, String>();map.put("name", statusNames[i]);map.put("value", statusValues.get(i));status.add(map);}// 使用SimpleAdapter封装List数据SimpleAdapter adapter = new SimpleAdapter(this, status,R.layout.line, new String[] { "name", "value" }, new int[] { R.id.name, R.id.value });// 为ListView设置AdaptershowView.setAdapter(adapter);}}

main.xml

<?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"><ListView android:id="@+id/show"android:layout_width="fill_parent" android:layout_height="fill_parent" android:entries="@array/statusNames"/></LinearLayout>

line.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"><TextView android:id="@+id/name"android:layout_width="wrap_content" android:layout_height="wrap_content"android:width="120px"android:textSize="16dip"/><TextView android:id="@+id/value"android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="8px"android:textSize="16dip"/></LinearLayout>

arry.xml

<?xml version="1.0" encoding="utf-8"?><resources><!-- 声明一个名为statusNames的字符串数组 --><string-array name="statusNames"><item>设备编号</item><item>软件版本</item><item>网络运营商代号</item><item>网络运营商名称</item><item>手机制式</item><item>设备当前位置</item><item>SIM卡的国别</item><item>SIM卡序列号</item><item>SIM卡状态</item></string-array><!-- 声明一个名为simState的字符串数组 --><string-array name="simState"><item>状态未知</item><item>无SIM卡</item><item>被PIN加锁</item><item>被PUK加锁</item><item>被NetWork PIN加锁</item><item>已准备好</item></string-array><!-- 声明一个名为phoneType的字符串数组 --><string-array name="phoneType"><item>未知</item><item>GSM</item><item>CDMA</item></string-array></resources>

运行结果



8 0
原创粉丝点击