Android获取可读取的手机信息

创建Android项目,写好布局文件,

在Manifest.xml中获取权限:

 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
 <uses-permission android:name="adnroid.permission.CHANGE_WIFI_STATE"/>


获取手机型号,系统版本号,手机号码,屏幕分辨率,imei,imsi,是否root,ip地址等等

Activity中:

package com.example.phone_info;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;


import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.WindowManager;
import android.widget.TextView;


public class MainActivity extends Activity {
public TextView text_imei;
public TextView text_imsi;
public TextView text_phoneNum;
public TextView text_iccid;
public TextView text_phoneModel;//手机型号
public TextView text_systemVersion;//系统版本
public TextView text_cpu;
public TextView text_isNotRoot;
public TextView text_screenResolution;//屏幕分辨率
public TextView text_sequenceNum;//序列号
public TextView text_ip;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Context context=getApplicationContext();

text_imei=(TextView)findViewById(R.id.imei);
text_imsi=(TextView)findViewById(R.id.imsi);
text_phoneNum =(TextView)findViewById(R.id.phoneNum);
text_iccid = (TextView)findViewById(R.id.iccid);
text_phoneModel = (TextView)findViewById(R.id.phoneModel);
text_systemVersion = (TextView)findViewById(R.id.systemVersion);
text_cpu = (TextView)findViewById(R.id.cpu);
text_isNotRoot = (TextView)findViewById(R.id.isNotRoot);
text_screenResolution = (TextView)findViewById(R.id.screenResolution);
text_sequenceNum = (TextView)findViewById(R.id.sequenceNum);
text_ip = (TextView)findViewById(R.id.ip);
 

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
      
 
String imei = telephonyManager.getDeviceId();//获取手机imei
 
       text_imei.setText(imei);
       
       
       String imsi = telephonyManager.getSubscriberId();//获取手机imsi
       text_imsi.setText(imsi);
       
    
       String number = telephonyManager.getLine1Number();//获取手机号码
       text_phoneNum.setText(number);//手机号码,有的可得,有的不可得
       
       String SerialNumber=telephonyManager.getSimSerialNumber();//获取手机iccid
       text_iccid.setText(SerialNumber);
       
       String phoneModel=android.os.Build.MODEL;//获取手机型号
       text_phoneModel.setText(phoneModel);
       
       String systemVersion= android.os.Build.VERSION.RELEASE;//获取系统版本
       text_systemVersion.setText(systemVersion);
       
       
       //序列号
       try {           
                Class<?> c = Class.forName("android.os.SystemProperties");      
                Method get = c.getMethod("get", String.class);     
                String xulieNum = (String) get.invoke(c, "ro.serialno");    
                text_sequenceNum.setText(xulieNum);
                }   
            catch (Exception ignored) {    
                  
            }   
       
       //CPU不获取 
       text_cpu.setText("");
       
       
       //是否root
       boolean root = false;  
       
       try {  
           if ((!new File("/system/bin/su").exists())  
                   && (!new File("/system/xbin/su").exists())) {  
               root = false;  
           } else {  
               root = true;  
           }  
 
       } catch (Exception e) {  
       }  
       
       text_isNotRoot.setText(root+"");
       
//     // 方法1 Android获得屏幕的宽和高    
//        WindowManager windowManager = getWindowManager();    
//        Display display = windowManager.getDefaultDisplay();    
//        int screenWidth = screenWidth = display.getWidth();    
//        int screenHeight = screenHeight = display.getHeight(); 
       
      /* WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
       int width = mWindowManager.getDefaultDisplay().getWidth();  
       int height = mWindowManager.getDefaultDisplay().getHeight();
       text_screenResolution.setText(width+"*"+height);*/
       
       //获取手机屏幕分辨率
       DisplayMetrics dm=new DisplayMetrics();
       getWindowManager().getDefaultDisplay().getMetrics(dm);
       String s=dm.widthPixels+"*"+dm.heightPixels;


       text_screenResolution.setText(s);//屏幕分辨率
       
       
      
          
       
      
text_ip.setText(getLocalIpAddress());//获取IP地址
       
}

// /**
//     * 获取手机IMEI号
//     */
//    public static String getIMEI(Context context) {
//        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
//        String imei = telephonyManager.getDeviceId();
//       
//        return imei;
//    }
//    
//    /**
//     * 获取手机IMSI号
//     */
//   public static String getIMSI(Context context){
//      TelephonyManager mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//      String imsi = mTelephonyMgr.getSubscriberId();
//
//      return imsi ;
//  }
   
   /**
    * 获取手机号
    */
  public static String getPhoneNum(Context context){
 TelephonyManager tm= (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
 String number = tm.getLine1Number();
     return number ;
 }
  
  
  public String[] getCpuInfo() {  
   String str1 = "/proc/cpuinfo";  
   String str2="";  
   String[] cpuInfo={"",""};  
   String[] arrayOfString;  
   try {  
       FileReader fr = new FileReader(str1);  
       BufferedReader localBufferedReader = new BufferedReader(fr, 8192);  
       str2 = localBufferedReader.readLine();  
       arrayOfString = str2.split("\\s+");  
       for (int i = 2; i < arrayOfString.length; i++) {  
           cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";  
       }  
       str2 = localBufferedReader.readLine();  
       arrayOfString = str2.split("\\s+");  
       cpuInfo[1] += arrayOfString[2];  
       localBufferedReader.close();  
   } catch (IOException e) {  
   }  
   return cpuInfo;  

  


  public String getLocalIpAddress() {
 
 
 
 WifiManager wifiManager = (WifiManager) getSystemService(android.content.Context.WIFI_SERVICE);
 WifiInfo wifiInfo = wifiManager.getConnectionInfo();
 int ipAddress = wifiInfo.getIpAddress();
 try {
 return InetAddress.getByName(String.format("%d.%d.%d.%d",
 (ipAddress & 0xff), (ipAddress >> 8 & 0xff),
 (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff))).toString();
 } catch (UnknownHostException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 return null;
 }


   
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值