• Android之TelephonyManager类的使用案例


    目录结构

    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">
    <ScrollView android:fillViewport="true"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent">
    <ListView android:id="@+id/listView"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent" />
    </ScrollView>
    </LinearLayout>

    array.xml文件

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

    清单文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ljq.activity" android:versionCode="1"
    android:versionName
    ="1.0">
    <application android:icon="@drawable/icon"
    android:label
    ="@string/app_name">
    <activity android:name=".TelephonyManagerActivity"
    android:label
    ="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category
    android:name
    ="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    </application>
    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    </manifest>

    TelephonyManagerActivity类

    package com.ljq.activity;

    import java.util.ArrayList;

    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.telephony.TelephonyManager;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.TextView;

    public class TelephonyManagerActivity extends Activity {
    private ListView listView=null;
    private TelephonyManager tm=null;
    private String[] phoneType=null;
    private String[] simState=null;
    private String[] listItems=null;
    ArrayList
    <String> listValues=new ArrayList<String>();
    BaseAdapter adapter
    =new BaseAdapter(){

    public int getCount() {
    return listItems.length;
    }

    public Object getItem(int position) {
    return listItems[position];
    }

    public long getItemId(int position) {
    return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
    LinearLayout ll
    =new LinearLayout(TelephonyManagerActivity.this);
    ll.setOrientation(LinearLayout.VERTICAL);
    TextView tvItem
    =new TextView(TelephonyManagerActivity.this);
    tvItem.setTextSize(
    24);
    tvItem.setText(listItems[position]);
    tvItem.setGravity(Gravity.LEFT);
    //设置在父容器中的对齐方式
    ll.addView(tvItem);
    TextView tvValue
    =new TextView(TelephonyManagerActivity.this);
    tvValue.setTextSize(
    18); //设置字体大小
    tvValue.setText(listValues.get(position)); //设置显示的内容
    tvValue.setPadding(0, 0, 10, 10); //设置四周边界
    tvValue.setGravity(Gravity.RIGHT);
    ll.addView(tvValue);
    return ll;
    }

    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    listItems
    =getResources().getStringArray(R.array.listItem);
    simState
    =getResources().getStringArray(R.array.simState);
    phoneType
    =getResources().getStringArray(R.array.phoneType);
    tm
    =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    listView
    =(ListView)findViewById(R.id.listView);
    initListValues();
    listView.setAdapter(adapter);
    }

    /**
    * 获取各个数据项的值
    */
    public void initListValues(){
    listValues.add(tm.getDeviceId());
    //获取设备编号
    listValues.add(tm.getSimCountryIso());//获取SIM卡国别
    listValues.add(tm.getSimSerialNumber());//获取SIM卡序列号
    listValues.add(simState[tm.getSimState()]);//获取SIM卡状态
    listValues.add((tm.getDeviceSoftwareVersion()!=null?tm.getDeviceSoftwareVersion():"未知")); //获取软件版本
    listValues.add(tm.getNetworkOperator());//获取网络运营商代号
    listValues.add(tm.getNetworkOperatorName());//获取网络运营商名称
    listValues.add(phoneType[tm.getPhoneType()]);//获取手机制式
    listValues.add(tm.getCellLocation().toString());//获取设备当前位置
    }
    }

    运行结果

  • 相关阅读:
    四叉树平面分割算法快速图元搜索
    dataGridView的行号
    记一次部署系列:prometheus+exporter+alertmanager+pushgateway+cAdvisor+Grafana
    记一次部署系列:grafana配置特定指标进行邮件告警
    记一次部署系列:prometheus配置通过alertmanager进行邮件告警
    记一次部署系列:prometheus通过pushgateway配置自定义监控项
    ArrayList方法原理解析
    从一个类上获取不到注解的原因
    Keycloak 入门实战(1)简介
    Keycloak 入门实战(2)安装
  • 原文地址:https://www.cnblogs.com/linjiqin/p/1965961.html
Copyright © 2020-2023  润新知