Android中TelephonyManager类的用法案例详解
更新时间:2015年09月26日 15:32:03 作者:Ruthless
这篇文章主要介绍了Android中TelephonyManager类的用法,以获取Android手机硬件信息为例详细分析了TelephonyManager类的使用技巧,需要的朋友可以参考下
本文以案例形式分析了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 Studio发布项目到Jcenter仓库步骤(图文)
这篇文章主要介绍了Android Studio发布项目到Jcenter仓库步骤(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-10-10android studio 一直卡在Gradle:Build Running的几种解决办法
这篇文章主要介绍了android studio 一直卡在Gradle:Build Running的解决办法,非常具有实用价值,需要的朋友可以参考下2017-10-10Android弹出dialog后无法捕捉back键的解决方法
这篇文章主要为大家详细介绍了Android弹出dialog后无法捕捉back键的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-09-09Android实现圆形ProgressBar停止转动的方法详解
这篇文章主要为大家详细介绍了Android实现圆形ProgressBar停止转动方法的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下2024-03-03Android开发实现的获取sdcard大小及内存大小工具类
这篇文章主要介绍了Android开发实现的获取sdcard大小及内存大小工具类,涉及Android针对手机硬件SD卡及内存相关操作技巧,需要的朋友可以参考下2017-11-11Android打包篇:Android Studio将代码打包成jar包教程
这篇文章主要介绍了Android打包篇:Android Studio将代码打包成jar包教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-03-03
最新评论