开发者社区> 算精通> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

android 获取手机的各种状态

简介: public class huoqu extends ListActivity { private TelephonyManager telMgr; private List<String> item = new ArrayList<String>(); private List<String> value = new ArrayLis
+关注继续查看


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>













版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android开发:使用Java对手机截图图片进行任意区域的颜色对比度处理操作
开发项目过程中,对于手机屏幕截图,需要对获取到的截图的任意部分进行区域颜色对比度的识别操作,由此判定任意指定区域是否满足某对比度基本标准,但是该功能在网上任何地方都没有找到过Java方面的代码,于是根据RGB转换测试的原理:即获取每个像素点的RGB,通过RGB对比度定义公式进行像素点的集合换取。
0 0
Android动态权限(兼容6.0以下和魅族手机方案)
这里以照相机权限为例说明问题。实际开发过程中遇到了不少的坑。
0 0
Android,iOS打开手机QQ与指定用户聊天界面
Android,iOS打开手机QQ与指定用户聊天界面
0 0
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
0 0
android手机操作SD的使用方法
android手机操作SD的使用方法
0 0
android手机中图片的拖拉及浏览功能
android手机中图片的拖拉及浏览功能
0 0
阿里云EMAS专家测试手机APP测试Android和iOS上百款机型
阿里云EMAS专家测试服务覆盖Android和iOS上百种手机型号,日活过亿规模手机APP经验的阿里云EMAS测试专家,48小时输出详细测试报告,包括功能测试、性能测试、UI适配测试以及隐私合规检测等。阿里云百科来详细说下阿里云EMAS专家测试服务说明及价格
0 0
Android Studioc查看手机文件系统
Android Studioc查看手机文件系统
0 0
Android打开手机相关功能
Android打开手机相关功能
0 0
+关注
算精通
北京阿里云ACE会长
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
手机卫士性能优化方案-Android篇
立即下载