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>













目录
相关文章
|
2月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
1533 2
|
3月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
151 0
|
1月前
|
存储 移动开发 Android开发
使用kotlin Jetpack Compose框架开发安卓app, webview中h5如何访问手机存储上传文件
在Kotlin和Jetpack Compose中,集成WebView以支持HTML5页面访问手机存储及上传音频文件涉及关键步骤:1) 添加`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限,考虑Android 11的分区存储;2) 配置WebView允许JavaScript和文件访问,启用`javaScriptEnabled`、`allowFileAccess`等设置;3) HTML5页面使用`<input type="file">`让用户选择文件,利用File API;
|
17天前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
3月前
|
缓存 Android开发 开发者
安卓系统优化:提升手机性能的秘诀
【5月更文挑战第31天】本文将探讨如何通过一系列简单的步骤和技巧,对安卓系统进行优化,以提升手机的性能。我们将从清理无用文件、管理后台应用、调整系统设置等方面入手,帮助你的安卓设备运行更加流畅。
|
3月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
|
3月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
|
2月前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
3月前
|
安全 Android开发 iOS开发
探索安卓与iOS手机操作系统的发展趋势与差异
在移动互联网时代,安卓和iOS手机操作系统一直处于激烈的竞争之中。本文将从技术角度出发,探讨两大操作系统的发展趋势、特点以及差异,并分析其对用户体验和开发者生态的影响,旨在为读者提供对移动操作系统发展方向的深入了解。
|
3月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
80 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用