返回顶部

收藏

Android获取Build和内存,分辨率等信息

更多
import android.app.ActivityManager;  
import android.content.Context;  
import android.net.wifi.WifiInfo;  
import android.net.wifi.WifiManager;  
import android.os.Build;  
import android.support.v7.app.ActionBarActivity;  
import android.os.Bundle;  
import android.telephony.TelephonyManager;  
import android.text.format.Formatter;  
import android.util.DisplayMetrics;  
import android.view.Menu;  
import android.view.MenuItem;  
import android.widget.TextView;  

import java.io.BufferedReader;  
import java.io.FileReader;  
import java.io.IOException;  
import java.util.TimeZone;  

public class Main extends ActionBarActivity {  
    private TextView tvInfo;  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        tvInfo = (TextView) findViewById(R.id.tvInfo);  
        tvInfo.setText(getBuildInfo(0) + getDisplayInfo(0) + getTelephonyState(0) + getTimeZoneInfo()  
                + getHardwareInfo(0));  
    }  

    /** 
     * @param type 0-All,1-Model,2-VersionRelease,Other-Error. 
     * @return String 
     */  
    private String getBuildInfo(int type) {  
        String model = Build.MODEL; // 型号  
        String versionRelease = Build.VERSION.RELEASE;  
        String versionSDK = Build.VERSION.SDK;  
        String versionIncremental = Build.VERSION.INCREMENTAL;  
        String brand = Build.BRAND;  
        String id = Build.ID;  
        String manufacturer = Build.MANUFACTURER;  
        String hardware = Build.HARDWARE;  
        String product = Build.PRODUCT;  
        String cpuABI = Build.CPU_ABI;  
        String cpuABI2 = Build.CPU_ABI2;  
        String fingerPrint = Build.FINGERPRINT;  
        String board = Build.BOARD;  
        String serial = Build.SERIAL;  
        String user = Build.USER;  
        if (type == 0) {  
            return "Model:" + model + "\nVersionRelease:" + versionRelease + "\nVersionSDK:" +  
                    versionSDK + "\nVersionIncremental:" + versionIncremental + "\nBrand:" + brand  
                    + "\nID:" + id + "\nManufacturer:" + manufacturer + "\nHardware:" + hardware  
                    + "\nProduct:" + product + "\nCpuABI:" + cpuABI + "\nCpuABI2:" + cpuABI2 +  
                    "\nFingerPrint:" + fingerPrint + "\nBoard:" + board + "\nSerial:" + serial +  
                    "\nUser:" + user + "\n";  
        } else if (type == 1) {  
            return "Model" + model + "\n";  
        } else if (type == 2) {  
            return "VersionRelease:" + versionRelease + "\n";  
        } else {  
            return "[getBuildInfo Err]";  
        }  
    }  

    private String getHardwareInfo(int type) {  

        WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);  
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();  
        String macAddress = wifiInfo.getMacAddress();  

        String strCPU = "";  
        String[] cpuInfo = {"", ""};  //1-cpu型号  //2-cpu频率  
        String[] arrayOfStringCPU;  
        try {  
            FileReader fileReader = new FileReader("/proc/cpuinfo");  
            BufferedReader localBufferedReader = new BufferedReader(fileReader, 8192);  
            strCPU = localBufferedReader.readLine();  
            arrayOfStringCPU = strCPU.split("\\s+");  
            for (int i = 2; i < arrayOfStringCPU.length; i++) {  
                cpuInfo[0] = cpuInfo[0] + arrayOfStringCPU[i] + " ";  
            }  
            strCPU = localBufferedReader.readLine();  
            arrayOfStringCPU = strCPU.split("\\s+");  
            cpuInfo[1] += arrayOfStringCPU[2];  
            localBufferedReader.close();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  

        // adb shell;cat /proc/meminfo  
        ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();  
        ActivityManager activityManager = (ActivityManager) this.getSystemService(  
                Context.ACTIVITY_SERVICE);  
        activityManager.getMemoryInfo(memoryInfo);  
        long mTotalMem = memoryInfo.totalMem;//0;  
        long mAvailMem = memoryInfo.availMem;  
        /* 
        String strMemory; 
        String[] arrayOfStringMemory; 
        try { 
            FileReader localFileReader = new FileReader("/proc/meminfo"); 
            BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192); 
            strMemory = localBufferedReader.readLine(); 
            arrayOfStringMemory = strMemory.split("\\s+"); 
            mTotalMem = Integer.valueOf(arrayOfStringMemory[1]).intValue() * 1024; 
            localBufferedReader.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        */  
        String totalMemory = Formatter.formatFileSize(this, mTotalMem);  
        String availMemory = Formatter.formatFileSize(this, mAvailMem);  

        if (type == 0) {  
            return "MacAddress:" + macAddress + "\nCpuModel:" + cpuInfo[0] + "\nCpuClock:" +  
                    cpuInfo[1] + "\nTotalMemory:" + totalMemory + "\nAvailableMemory:" + availMemory  
                    + "\n";  
        } else {  
            return "";  
        }  
    }  

    /** 
     * @param type 0-All,1-DeviceId,2-SubscriberId,3-PhoneNumber,Other-Error. 
     * @return String 
     */  
    private String getTelephonyState(int type) {  
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);  
        String deviceId = telephonyManager.getDeviceId();  
        String subscriberId = telephonyManager.getSubscriberId();  
        String phoneNumber = telephonyManager.getLine1Number();  

        if (type == 0) {  
            return "DeviceId:" + deviceId + "\nSubscriberId:" + subscriberId + "\nPhoneNumber:" + phoneNumber + "\n";  
        } else if (type == 1) {  
            return "DeviceId:" + deviceId + "\n";  
        } else if (type == 2) {  
            return "SubscriberId" + subscriberId + "\n";  
        } else if (type == 3) {  
            return "PhoneNumber:" + phoneNumber + "\n";  
        } else {  
            return "[getTelephonyState Err]";  
        }  
    }  

    /** 
     * @param type 0-All,1-ScreenHeight,2-ScreenWidth,Other-Error. 
     * @return String 
     */  
    private String getDisplayInfo(int type) {  
        DisplayMetrics displayMetrics = new DisplayMetrics();  
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);  
        int screenHeight = displayMetrics.heightPixels;  
        int screenWidth = displayMetrics.widthPixels;  
        if (type == 0) {  
            return "ScreenHeight:" + screenHeight + "\nScreenWidth:" + screenWidth + "\n";  
        } else if (type == 1) {  
            return "ScreenHeight:" + screenHeight + "\n";  
        } else if (type == 2) {  
            return "ScreenWidth:" + screenWidth + "\n";  
        } else {  
            return "[getTelephonyState Err]";  
        }  
    }  

    private String getTimeZoneInfo() {  
        TimeZone timeZone = TimeZone.getDefault();  
        return "TimeZone:" + timeZone.toString() + "\n";  
    }  

    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        getMenuInflater().inflate(R.menu.main, menu);  
        return true;  
    }  

    @Override  
    public boolean onOptionsItemSelected(MenuItem item) {  
        // Handle action bar item clicks here. The action bar will  
        // automatically handle clicks on the Home/Up button, so long  
        // as you specify a parent activity in AndroidManifest.xml.  
        int id = item.getItemId();  

        //noinspection SimplifiableIfStatement  
        if (id == R.id.action_settings) {  
            return true;  
        }  

        return super.onOptionsItemSelected(item);  
    }  
}  

标签:java

收藏

0人收藏

支持

0

反对

0

发表评论