android 获取手机的各种状态


public class huoqu extends ListActivity
{
  private TelephonyManager telMgr;
  private List<String> item = new ArrayList<String>();
  private List<String> value = new ArrayList<String>();

  @SuppressWarnings("static-access")
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /* 载入main.xml Layout */
    setContentView(R.layout.main);

    telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

    /* 将取得的信息写入List中 */
    /* 取得手机电话号码 */
    item.add(getResources().getText(R.string.str_list0).toString());
    if (telMgr.getLine1Number() != null)
    {
      value.add(telMgr.getLine1Number());
    } else
    {
      value.add("无法取得");
    }

    /* 取得电信网络国别 */
    item.add(getResources().getText(R.string.str_list1).toString());
    if (telMgr.getNetworkCountryIso().equals(""))
    {
      value.add("无法取得");
    } else
    {
      value.add("" + telMgr.getNetworkCountryIso());
    }

    /* 取得电信公司代码 */
    item.add(getResources().getText(R.string.str_list2).toString());
    if (telMgr.getNetworkOperator().equals(""))
    {
      value.add("无法取得");
    } else
    {
      value.add(telMgr.getNetworkOperator());
    }

    /* 取得电信公司名称 */
    item.add(getResources().getText(R.string.str_list3).toString());
    if (telMgr.getNetworkOperatorName().equals(""))
    {
      value.add("无法取得");
    } else
    {
      value.add(telMgr.getNetworkOperatorName());
    }

    /* 取得行动通信类型 */
    item.add(getResources().getText(R.string.str_list4).toString());
    if (telMgr.getPhoneType() == telMgr.PHONE_TYPE_GSM)
    {
      value.add("GSM");
    } else
    {
      value.add("未知");
    }

    /* 取得网络类型 */
    item.add(getResources().getText(R.string.str_list5).toString());
    if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_EDGE)
    {
      value.add("EDGE");
    } else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_GPRS)
    {
      value.add("GPRS");
    } else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_UMTS)
    {
      value.add("UMTS");
    } else if (telMgr.getNetworkType() == 4)
    {
      value.add("HSDPA");
    } else
    {
      value.add("未知");
    }

    /* 取得漫游状态 */
    item.add(getResources().getText(R.string.str_list6).toString());
    if (telMgr.isNetworkRoaming())
    {
      value.add("漫游中");
    } else
    {
      value.add("无漫游");
    }

    /* 取得手机IMEI */
    item.add(getResources().getText(R.string.str_list7).toString());
    value.add(telMgr.getDeviceId());

    /* 取得IMEI SV */
    item.add(getResources().getText(R.string.str_list8).toString());
    if (telMgr.getDeviceSoftwareVersion() != null)
    {
      value.add(telMgr.getDeviceSoftwareVersion());
    } else
    {
      value.add("无法取得");
    }

    /* 取得手机IMSI */
    item.add(getResources().getText(R.string.str_list9).toString());
    if (telMgr.getSubscriberId() != null)
    {
      value.add(telMgr.getSubscriberId());
    } else
    {
      value.add("无法取得");
    }

    /* 取得ContentResolver */
    ContentResolver cv = huoqu.this.getContentResolver();
    String tmpS = "";

    /* 取得蓝牙状态 */
    item.add(getResources().getText(R.string.str_list10).toString());
    tmpS = android.provider.Settings.System.getString(cv,
        android.provider.Settings.System.BLUETOOTH_ON);
    if (tmpS.equals("1"))
    {
      value.add("已打开");
    } else
    {
      value.add("未打开");
    }

    /* 取得WIFI状态 */
    item.add(getResources().getText(R.string.str_list11).toString());
    tmpS = android.provider.Settings.System.getString(cv,
        android.provider.Settings.System.WIFI_ON);
    if (tmpS.equals("1"))
    {
      value.add("已打开");
    } else
    {
      value.add("未打开");
    }

    /* 取得飞行模式是否打开 */
    item.add(getResources().getText(R.string.str_list12).toString());
    tmpS = android.provider.Settings.System.getString(cv,
        android.provider.Settings.System.AIRPLANE_MODE_ON);
    if (tmpS.equals("1"))
    {
      value.add("打开中");
    } else
    {
      value.add("未打开");
    }

    /* 取得数据漫游是否打开 */
    item.add(getResources().getText(R.string.str_list13).toString());
    tmpS = android.provider.Settings.System.getString(cv,
        android.provider.Settings.System.DATA_ROAMING);
    if (tmpS.equals("1"))
    {
      value.add("打开中");
    } else
    {
      value.add("未打开");
    }

    /* 使用自定义的MyAdapter来将数据传入ListActivity */
    setListAdapter(new MyAdapter(this, item, value));
  }
}


/* 自定义的Adapter,继承android.widget.BaseAdapter */
public class MyAdapter extends BaseAdapter
{
  /* 变量声明 */
  private LayoutInflater mInflater;
  private List<String> items;
  private List<String> values;
  /* MyAdapter的构造器,传入三个参数  */  
  public MyAdapter(Context context,List<String> item,
                   List<String> value)
  {
    /* 参数初始化 */
    mInflater = LayoutInflater.from(context);
    items = item;
    values = value;
  }
  
  /* 因继承BaseAdapter,需覆盖以下方法 */
  @Override
  public int getCount()
  {
    return items.size();
  }

  @Override
  public Object getItem(int position)
  {
    return items.get(position);
  }
  
  @Override
  public long getItemId(int position)
  {
    return position;
  }
  
  @Override
  public View getView(int position,View convertView,ViewGroup par)
  {
    ViewHolder holder;
  
    if(convertView == null)
    {
      /* 使用自定义的file_row作为Layout */
      convertView = mInflater.inflate(R.layout.row_layout,null);
      /* 初始化holder的text与icon */
      holder = new ViewHolder();
      holder.text1=(TextView)convertView.findViewById(R.id.myText1);
      holder.text2=(TextView)convertView.findViewById(R.id.myText2);
    
      convertView.setTag(holder);
    }
    else
    {
      holder = (ViewHolder) convertView.getTag();
    }
    /* 设置要显示的信息 */
    holder.text1.setText(items.get(position).toString());
    holder.text2.setText(values.get(position).toString());
  
    return convertView;
  }
  
  /* class ViewHolder */
  private class ViewHolder
  {
    /* text1:信息名称
     * text2:信息内容 */
    TextView text1;
    TextView text2;
  }
}


 <!-- 声明READ_PHONE_STATE权限 -->
  <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>













上一篇:5G架构之NFV和SDN | 《5G移动无线通信技术》之十一


下一篇:IE6 VS IE7 ——显示大量控件时的表现