文档章节

7.获取手机的状态

一别经年
 一别经年
发布于 2014/01/18 15:30
字数 459
阅读 21
收藏 0

这个功能实现的是获取用户手机的一些定义的信息

package lovefang.stadyService;
/**引入包*/
 import android.os.Bundle;
 import android.app.Activity;
 import android.app.Service;
 import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
 import android.content.ContentResolver;//This class provides applications access to the content model.
 import android.telephony.TelephonyManager;
 import android.util.Log;
/**获取手机的状态*/
 public class UsePhoneState extends Activity{
   /**创建参数*/
  private ContentResolver cr;
  private Button getStateButton;// 用来获取用户的手机状态
   /**创建Activity*/
  public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.usephonestate);
   
   cr = getContentResolver();
   Log.v("UsePhonestate","cr = getContentResolver()");
   Log.v("UsePhonestate","setContentView");
   getStateButton = (Button) findViewById(R.id.button_getphonestate);
   Log.v("UsePhonestate","getStateButton");
   getStateButton.setOnClickListener(getState);
   Log.v("UsePhonestate","getStateButton.setOnClickListener");
  }
  private Button.OnClickListener getState = new Button.OnClickListener(){
   public void onClick(View view){
     /**获得TelephonyManager对象*/
    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Service.TELEPHONY_SERVICE);
     /**获取电信网络级别*/
    String teleCode = telephonyManager.getNetworkCountryIso();
     /**获取电信网络公司代码*/
    String teleComCode = telephonyManager.getNetworkOperator();
     /**获取电信网络公司名称*/
    String teleComName = telephonyManager.getNetworkOperatorName();
     /**获取行动通信类型*/
    int TypeCode = telephonyManager.getPhoneType();
    
    String type = "";
    
    switch(TypeCode){
     case TelephonyManager.PHONE_TYPE_NONE:
      type = "PHONE_TYPE_NONE";
      break;
     case TelephonyManager.PHONE_TYPE_GSM:
      type = "PHONE_TYPE_GSM";
      break;
     case TelephonyManager.PHONE_TYPE_CDMA:
      type = "PHONE_TYPE_CDMA";
      break;
    }
     /**获取网络类型*/
    int netTypeCode = telephonyManager.getNetworkType();
    String netType = "NETWORK_TYPE_UNKNOW";
    switch(netTypeCode){
     case TelephonyManager.NETWORK_TYPE_1xRTT:
      netType = "NETWORK_TYPE_1xRTT";
      break;
     case TelephonyManager.NETWORK_TYPE_CDMA:
      netType = "NETWORK_TYPE_CDMA";
      break;
     case TelephonyManager.NETWORK_TYPE_EDGE:
      netType = "NETWORK_TYPE_EDGE";
      break;
     case TelephonyManager.NETWORK_TYPE_EVDO_0:
      netType = "NETWORK_TYPE_EVDO_0";
      break;
     case TelephonyManager.NETWORK_TYPE_EVDO_A:
      netType = "NETWORK_TYPE_EVDO_A";
      break;
     case TelephonyManager.NETWORK_TYPE_GPRS:
      netType = "NETWORK_TYPE_GPRS";
      break;
     case TelephonyManager.NETWORK_TYPE_HSDPA:
      netType = "NETWORK_TYPE_HSDPA";
      break;
     case TelephonyManager.NETWORK_TYPE_HSPA:
      netType = "NETWORK_TYPE_HSPA";
      break;
     case TelephonyManager.NETWORK_TYPE_HSUPA:
      netType = "NETWORK_TYPE_HSUPA";
      break;
     case TelephonyManager.NETWORK_TYPE_IDEN:
      netType = "NETWORK_TYPE_IDEN";
      break;
     case TelephonyManager.NETWORK_TYPE_UMTS:
      netType = "NETWORK_TYPE_UMTS";
      break;
     default:
      break;
    }
    
     /**获取漫游状态*/
    boolean roamStatusCode = telephonyManager.isNetworkRoaming();
    String roamStatus = "NOT ROAMINF";
    if(roamStatusCode){
     roamStatus = "ROAMING";
    }
    
     /**获取手机唯一标识*/
    String imei = telephonyManager.getDeviceId();
     /**获取手机IMEI SV*/
    String imeiSV = telephonyManager.getDeviceSoftwareVersion();
     /**获取手机IMSI*/
    String imsi = telephonyManager.getSubscriberId();
    
     /**蓝牙服务*/
    String statusCode = android.provider.Settings.System.getString(cr,
      android.provider.Settings.System.BLUETOOTH_ON);
    String bulettothStatus = "";
    if(statusCode.equals("1")){
     bulettothStatus = "ENABLE";
    }else{
     bulettothStatus = "DISABLE";
    }
    
     /**飞行模式是否打开*/
    statusCode = android.provider.Settings.System.getString(cr,
      android.provider.Settings.System.AIRPLANE_MODE_ON);
    
    String AirplaneStatus = "";
    if(statusCode.equals("1")){
     AirplaneStatus = "ENABLE";
    }else{
     AirplaneStatus = "DISABLE";
    }
    
     /**数据漫游模式是否打开*/
    statusCode = android.provider.Settings.System.getString(cr,
      android.provider.Settings.System.DATA_ROAMING);
    String dataRoamStatus = "";
    if(statusCode.equals("1")){
     dataRoamStatus = "ENABLE";
    }else{
     dataRoamStatus = "DISABLE";
    }
    TextView txt = (TextView) findViewById(R.id.text_showphonestate);
    StringBuilder sb = new StringBuilder();
    sb.append("teleCode: "+teleCode+"\n");
    sb.append("teleComCode: "+teleComCode+"\n");
    sb.append("teleComName: "+teleComName+"\n");
    sb.append("type: "+type+"\n");
    sb.append("netType: "+netType+"\n");
    sb.append("roamStatus: "+roamStatus+"\n");
    sb.append("imei: "+imei+"\n");
    sb.append("imeiSV: "+imeiSV+"\n");
    sb.append("imsi: "+imsi+"\n");
    sb.append("bulettothStatus: "+bulettothStatus+"\n");
    sb.append("AirplaneStatus: "+AirplaneStatus+"\n");
    sb.append("dataRoamStatus: "+dataRoamStatus+"\n");
    
    txt.setText(sb.toString());
   }
  };
 }

© 著作权归作者所有

共有 人打赏支持
下一篇: 6.Alarm 闹钟服务
一别经年
粉丝 17
博文 174
码字总数 60456
作品 0
西安
程序员
私信 提问
Android获取本机信息(随时更新)

1、获取IP(ipv4)地址 public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements();) { Netwo......

jdroid
2014/02/28
0
0
Windows Live & Windows Phone 7

众所周知Windows Phone 7 与Windows Live 有很好的结合度,用户可以通过Live ID 登录到Windows Phone 7,获取个人的Live 信息,例如:联系人、邮件、Xbox Live。本篇我们来一起探索在Windows...

虫虫
2012/02/21
290
0
Windows Live & Windows Phone 7

众所周知Windows Phone 7 与Windows Live 有很好的结合度,用户可以通过Live ID 登录到Windows Phone 7,获取个人的Live 信息,例如:联系人、邮件、Xbox Live。本篇我们来一起探索在Windows...

junwong
2012/03/09
39
0
Android TelephonyManager类

Android本机号码及Sim卡状态的获取 TelephonyManager这个类很有用,可以得到很多关于手机和Sim卡的信息。 package eoe.demo; import android.app.Activity; import android.os.Bundle; impor...

长平狐
2012/08/14
259
0
Android TelephonyManager类

Android本机号码及Sim卡状态的获取 TelephonyManager这个类很有用,可以得到很多关于手机和Sim卡的信息。 package eoe.demo; import android.app.Activity; import android.os.Bundle; impor...

长平狐
2012/08/09
203
0

没有更多内容

加载失败,请刷新页面

加载更多

/sbin/ldconfig.real: /usr/local/lib/libcudnn.so.7 不是符号链接

平台:Ubuntu 18 LTS 问题描述 /sbin/ldconfig.real: /usr/local/lib/libcudnn.so.7 不是符号链接 解决办法:建立软连接 sudo ln -sf /usr/local/lib/libcudnn.so.7.1.3 /usr/local/lib/libc......

Pulsar-V
19分钟前
1
0
C++多线程之使用Mutex和Critical_Section

Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量、对象或内存空间的访问。下面是其主要的异同点(不同的地方用绿色表示)。 Mutex Critical Section 性能和...

shzwork
33分钟前
1
0
AWS的自动部署工具codedeploy 部署前的准备工作

开始部署codedeploy: 1.先预置IAM用户: 创建一个IAM用户或使用一个与AWS相关联的用户; 复制以下的策略附加到IAM用户,向IAM用户赋予对codedeploy(及codedeploy所依赖的AWS服务和操作)的...

守护-创造
45分钟前
1
0
这可能是最详细的一线大厂Mysql面试题详解了

1、MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 从:io线程——在使用start slave 之后...

Java干货分享
55分钟前
3
0
人的精力是什么?如何强化精力

人的精力是什么? 人的精力是什么? 精力指精神和体力。精神包括一个人的精神状态,兴奋度,做事情的投入度,专注度,持续时间等。 人的精力来源 人的精力有4种来源,身体的、情感的、思想的和...

莫库什勒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部