目录结构

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之TelephonyManager类的使用案例

更多相关文章

  1. Android设备重启(reboot)---Android studio
  2. 判断Android设备是否连接网络
  3. javascript获取Android设备版本信息(备忘)
  4. Android AudioManager修改设备默认音量
  5. 获取Android设备电池电量状态
  6. webview开发-适配多分辨率的Android设备
  7. android内核字符驱动设备实战之----------设备驱动程序篇
  8. Google 发布 Android @ Home,让你用 Android 设备控制家电
  9. Android之蓝牙设备使用

随机推荐

  1. android EditText 添加图片表情以及在四
  2. 如果Imageview与Linearlayout有叠加且可
  3. 为usb网卡设置ip地址之一
  4. android 五大布局
  5. Android(安卓)获取控件宽高的3种方法
  6. android ImageView scaleType属性
  7. android 面试题一
  8. android 常用小知识点 tips (二)
  9. Android发送短信
  10. Android开发:设置widget大小为 4x1