您的位置:首页 > 理论基础 > 计算机网络

TelephonyManager是一个管理手机通话状态,电话网络信息的服务类

2014-11-05 11:19 573 查看
           TelephonyManager是一个管理手机通话状态,电话网络信息的服务类

TelephonyManager是一个管理手机通话状态,电话网络信息的服务类

在程序中获取TelephonyManager十分简单

下面通过一个实例来获取网络和SIM卡信息
创建数组文件array.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>  

创建一个layout文件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>

主界面layout

<?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> 

代码

 package WangLi.Service.TelephonyStatus;  

      

    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 TelephonyStatus extends Activity {  

        ListView showView;  

        // 声明代表状态名的数组  

        String[] statusNames;  

        // 声明代表手机状态的集合  

        ArrayList<String> statusValues = new ArrayList<String>();  

      

        /** Called when the activity is first created. */  

        @Override  

        public 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(tManager.getSimSerialNumber());  

            // 获取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 });  

            showView.setAdapter(adapter);  

        }  

    } 

别忘了在AndroidManifest.xml加入相应权限

<!--  添加访问手机位置的权限  -->   
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />   
<!--  添加访问手机状态的权限  -->   
<uses-permission android:name="android.permission.READ_PHONE_STATE" />   
运行效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐