android设备信息获取

来源:互联网 发布:中国战争电影 知乎 编辑:程序博客网 时间:2024/05/20 05:45

SD卡:

    public void sdCardUtil() {        String sdCardPath = Environment.getExternalStorageDirectory().getAbsolutePath();        String state = Environment.getExternalStorageState();        boolean avaiable = (state == Environment.MEDIA_MOUNTED);    }

CPU主频获取:

public String getMaxCpuFreq() {
        String result = "";
        ProcessBuilder cmd;
        try {
            String[] args = { "/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" };
            cmd = new ProcessBuilder(args);
            Process process = cmd.start();
            InputStream in = process.getInputStream();
            byte[] re = new byte[24];
            while (in.read(re) != -1) {
                result = result + new String(re);
            }
            in.close();
        } catch (IOException ex) {
            ex.printStackTrace();
            result = "N/A";
        }
        return result.trim();
    }


TelephonyManager实例的获取需要READ_PHONE_STATE权限。具体函数如下:

getCellLocation() 返回的单元格位置的装置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION

getDeviceId() 返回的IMEI / MEID的设备。 如果该设备是GSM设备然后IMEI号将被退回,如果该设备是一个CDMA设备然后MEID 将被退回

getLine1Number() 返回设备的电话号码(MSISDN号码)

getNetworkOperatorName() 返回注册的网络运营商的名字

getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商

getNetworkCountryIso() 返回注册的网络运营商的国家代码

getSimCountryIso() 返回SIM卡运营商的国家代码

getSimOperator() 返回SIM卡运营商的代码,其中46000和46002属于中国移动、46001属于联通、46003属于电信

getSimOperatorName() 返回SIM卡运营商的名字

getSimSerialNumber() 返回SIM卡的序列号

getNetworkType() 返回网络设备可用的类型。 这将是下列其中一个值:

TelephonyManager.NETWORK_TYPE_UNKNOWN

TelephonyManager.NETWORK_TYPE_GPRS

TelephonyManager.NETWORK_TYPE_EDGE

TelephonyManager.NETWORK_TYPE_UMTS

getPhoneType() 返回设备的类型。

这将是以下值之一:

TelephonyManager.PHONE_TYPE_NONE

TelephonyManager.PHONE_TYPE_GSM

TelephonyManager.PHONE_TYPE_CDMA

getSubscriberId() 返回用户识别码(的IMSI)的设备

getNeighboringCellInfo() 返回NeighboringCellInfo类代表名单相邻小区的信息,如果可用,否则将返回null ACCESS_COARSE_UPDATES


WifiManager实例的获取需要ACCESS_WIFI_STATE的权限,部分函数如下:

getConnectionInfo().getMacAddress() 返回设备的mac地址

getWifiState() 返回设备的wifi连接状态

下列值之一:

WIFI_STATE_DISABLED, WIFI_STATE_DISABLING, WIFI_STATE_ENABLED(可用状态), WIFI_STATE_ENABLING, WIFI_STATE_UNKNOWN

监听Wifi状态变化可以使用以下两种方式

1.XML中声明

 <receiver android:name=".NetworkConnectChangedReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                <action android:name="android.net.wifi.STATE_CHANGE" />
            </intent-filter>
        </receiver>

 

2.代码中注册

 IntentFilter filter = new IntentFilter();
 filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
 filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
 filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
 registerReceiver(new NetworkConnectChangedReceiver(), filter);


屏幕尺寸获取:

public void getScreenInfo() {
        DisplayMetrics metrics = new DisplayMetrics();
        mActivity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        StringBuilder builder = new StringBuilder();
        builder.append("密度=").append(metrics.density);
        builder.append("\n宽度=").append(metrics.widthPixels);
        builder.append("\n高度=").append(metrics.heightPixels);
    }

0 0
原创粉丝点击