Service之TelephonyManager使用
2016-04-09 12:52
399 查看
TelephonyManager是一个管理手机通话状态,电话网络信息的服务类。下面简要使用其API
案例: 获取网络和SIM卡的信息(笔者参考疯狂Android讲义一书)
代码如下:
在布局文件中使用ListView
定义一个array数组
在MainActivity中
Line布局如下:
运行效果
案例: 获取网络和SIM卡的信息(笔者参考疯狂Android讲义一书)
代码如下:
在布局文件中使用ListView
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.yu.telephonymanager.MainActivity"> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/show"></ListView> </RelativeLayout>
定义一个array数组
<?xml version="1.0" encoding="utf-8"?> <resources> <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> <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>
在MainActivity中
package com.yu.telephonymanager; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.TelephonyManager; import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class MainActivity extends AppCompatActivity { private ListView showView; ArrayList<String> statusValues = new ArrayList<>(); private String[] statusNames; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showView = (ListView) findViewById(R.id.show); //TelephonyManager对象 TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); statusNames = getResources().getStringArray(R.array.statusNames); String[] simState = getResources().getStringArray(R.array.simState); String[] phoneType = getResources().getStringArray(R.array.phoneType); //获取手机设备的编号 statusValues.add(manager.getDeviceId()); //获取软件的版本 statusValues.add(manager.getDeviceSoftwareVersion() != null ? manager.getDeviceSoftwareVersion() : "未知版本"); //获取网络运营商代号 statusValues.add(manager.getNetworkOperator()); //获取网络运营商名称 statusValues.add(manager.getNetworkOperatorName()); //获取网络类型 statusValues.add(phoneType[manager.getPhoneType()]); //获取设备所在的位置 statusValues.add(manager.getCellLocation().toString() != null ? manager.getCellLocation().toString() : "未知位置"); //获取Sim卡的国别 statusValues.add(manager.getSimCountryIso()); //获取sim卡的序列号 statusValues.add(manager.getSimSerialNumber()); //获取Sim卡的状态 statusValues.add(simState[manager.getSimState()]); //将数据添加掉ArrayList中 ArrayList<Map<String, String>> status = new ArrayList<>(); for (int i = 0; i < statusValues.size(); i++) { HashMap<String, String> map = new HashMap<>(); 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设置Adapter showView.setAdapter(adapter); } }
Line布局如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="左边" android:textSize="18sp" android:id="@+id/name"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="右边" android:layout_marginLeft="100dp" android:textSize="18sp" android:id="@+id/value"/> </LinearLayout>
运行效果
相关文章推荐
- lua编译环境搭建
- poj 1845 Sumdiv(求逆元)
- C语言之内存对齐
- 在线扫描PDF JPG 图片上面文字
- C#打印小票自带条形码打印
- 【剑指 offer】(十四)—— 调整数组顺序使奇数位于偶数之前
- ArcGIS水文分析工具箱
- chrome设置可以跨域访问
- 《深入理解计算机系统》第七章 链接
- 基于opencv的MFC多摄像机视场标定软件
- lambdaj工具类中的 Lambda.maxFrom方法的实现
- 安装eclipse并汉化
- 一个线性方程组的问题
- POJ3974 Palindrome
- 基于深层神经网络的命名实体识别技术
- 设计模式--桥梁模式C++实现
- 云工具分享
- 安装jdk/jre:
- 虐人的hd1001 Sum Problem
- Android 设置参数至kernel_ois为例