您的位置:首页 > 理论基础 > 计算机网络

TelephonyManager学习之一,获取网络状态,SIM卡信息和监听手机来电

2015-02-05 15:19 309 查看
              JAVA代码:

ListView  lv=(ListView) findViewById(R.id.lv);
TelephonyManager tm=(TelephonyManager) getSystemService(TELEPHONY_SERVICE);
String[] statusname=getResources().getStringArray(R.array.statusName);
statusvalues.add(tm.getDeviceId());//获取设备编号。
statusvalues.add(tm.getDeviceSoftwareVersion()!=null?tm.getDeviceSoftwareVersion():"未知");//获取系统平台版本
statusvalues.add(tm.getNetworkOperator());//获取网络运营商代码
statusvalues.add(tm.getNetworkOperatorName());//获取网络运营商名称
statusvalues.add(tm.getPhoneType()+"");//获取手机网络类型
statusvalues.add(tm.getCellLocation()!=null?tm.getCellLocation()+"":"未知");//获取设备所在位置
statusvalues.add(tm.getSimCountryIso());//获取SIM卡国别
statusvalues.add(tm.getSimSerialNumber());//获取SIM卡序列号
statusvalues.add(tm.getSimState()+"");//获取SIM卡的状态
ArrayList<Map<String,String>>data=new ArrayList<Map<String,String>>();
for (int i = 0; i < statusvalues.size(); i++) {
HashMap<String, String> map=new HashMap<String, String>();
map.put("name", statusname[i]);
map.put("Value", statusvalues.get(i));
data.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(this, data,R.layout.list, new String[]{"name","Value"},new int[]{R.id.name,R.id.value});
lv.setAdapter(adapter);
/**
* 监听手机来电
*/
PhoneStateListener psl=new PhoneStateListener(){

@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch(state){
//无任何状态
case TelephonyManager.CALL_STATE_IDLE:break;
case TelephonyManager.CALL_STATE_OFFHOOK:break;
//来电铃响时
case TelephonyManager.CALL_STATE_RINGING:

Toast.makeText(MainActivity.this,new Date()+"电话号码"+incomingNumber , 0).show();

break;
}

}

};
//监听电话通话状态的改变
tm.listen(psl, PhoneStateListener.LISTEN_CALL_STATE);
其中 :R.array.statusName可以在res/values的strings.xml文件中创建

<string-array name="statusName">
<item>设备编号</item>
<item>系统平台版本</item>
<item>网络运营商代码</item>
<item>网络运营商名称</item>
<item>手机网络类型</item>
<item>设备所在位置</item>
<item>获取SIM卡国别</item>
<item>获取SIM卡序列号</item>
<item>获取SIM卡的状态</item>
</string-array>
其他两个layout文件中:一个是主layout里面放个<ListView/>就可以了,第二个是ListView自定义样式,自己定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android