由疯狂讲义第三版整理而来;
/*
* TelephoneManager是一个管理手机通话状态、电话网络信息的服务类,该类提供了大量的getXxx()方法来获取电话网络的相关信息;
* 还提供了listen(PhoneStateListener listener, int events) 方法来监听通话状态;
* 添加权限
*
*
*/
public class MainActivity extends Activity
{
TelephonyManager tm;
ListView listView;
String[] statusName; //声明代表状态名的数组;
ArrayList<String> statusValues = new ArrayList<String>(); //声明代表手机状态的集合;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
getPhoneStatus();
getListen();
}
private void getPhoneStatus()
{
//获取代表各种状态名称的数组;
statusName = getResources().getStringArray(R.array.statusName);
//获取代表SIM卡状态的数组;
String[] simStatu = getResources().getStringArray(R.array.simState);
//获取代表电话网络类型的数组;
String[] phoneType = getResources().getStringArray(R.array.phoneType);
statusValues.add(tm.getDeviceId()); // 获取设备编号
statusValues.add(tm.getDeviceSoftwareVersion() != null ?
tm.getDeviceSoftwareVersion() : "未知"); // 获取系统平台的版本
statusValues.add(tm.getNetworkOperator()); // 获取网络运营商代号
statusValues.add(tm.getNetworkOperatorName()); // 获取网络运营商名称
statusValues.add(phoneType[tm.getPhoneType()]); // 获取手机网络类型
statusValues.add(tm.getCellLocation() != null ? tm
.getCellLocation().toString() : "未知位置"); // 获取设备所在位置
statusValues.add(tm.getSimCountryIso()); // 获取SIM卡的国别
statusValues.add(tm.getSimSerialNumber()); // 获取SIM卡序列号
statusValues.add(simStatu[tm.getSimState()]); // 获取SIM卡状态
listView = (ListView)findViewById(R.id.listView); // 获得ListView对象
ArrayList<Map<String, String>> status = new ArrayList<Map<