Android中TelephonyManager类的用法案例详解
作者:Ruthless 时间:2022-04-30 20:18:32
本文以案例形式分析了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());//获取设备当前位置
}
}
运行结果:
希望本文所述对大家的Android程序设计有所帮助。
标签:Android,TelephonyManager
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
简单了解SpringCloud运行原理
2023-06-09 17:07:15
Java swing实现酒店管理系统
2021-08-08 02:24:12
Java后台通过Collections获取list集合中最大数,最小数代码
2023-03-15 19:53:05
![](https://img.aspxhome.com/file/2023/0/80220_0s.jpg)
java多线程详细总结
2023-01-10 14:16:04
SpringMVC记录我遇到的坑_AOP注解无效,切面不执行的解决
2021-08-09 06:20:58
SpringMVC中事务是否可以加在Controller层的问题
2021-12-09 01:20:15
Java修饰符 abstract,static,final 的区别详解
2023-12-19 22:11:25
Spring Data Jpa实现分页和排序代码实例
2021-11-08 01:19:48
flutter 路由跳转的实现示例
2023-08-23 14:55:26
C#实现员工ID卡的识别功能
2021-08-11 23:49:25
![](https://img.aspxhome.com/file/2023/9/83349_0s.png)
C# 遍历枚举类型的所有元素
2023-02-06 00:27:46
实例讲解Java并发编程之闭锁
2023-10-25 14:25:07
详解Eclipse 字体、字号的设置、最佳字体推荐
2023-11-26 12:25:32
![](https://img.aspxhome.com/file/2023/9/60149_0s.png)
SpringBoot使用AOP记录接口操作日志的方法
2022-01-19 08:56:47
![](https://img.aspxhome.com/file/2023/4/108444_0s.png)
使用SmtpClient发送邮件的方法
2022-12-07 16:32:58
OpenCV和C++实现图像的翻转(镜像)、平移、旋转、仿射与透视变换
2023-07-14 23:47:22
![](https://img.aspxhome.com/file/2023/3/95523_0s.jpg)
Java如何基于ProcessBuilder类调用外部程序
2023-11-27 20:19:57
![](https://img.aspxhome.com/file/2023/0/59210_0s.png)
Springboot整合企业微信机器人助手推送消息的实现
2023-08-18 08:37:37
![](https://img.aspxhome.com/file/2023/0/110850_0s.png)
java多线程下载实例详解
2023-05-19 05:53:37
![](https://img.aspxhome.com/file/2023/9/116179_0s.png)
Android编程常用技巧实例总结
2022-11-30 20:27:44