1.获取传感器信息
private String getSensorInfo() {
String checkResult = "\nSensor:\n";
// ACCELEROMETER
if (mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null) {
checkResult = checkResult + "加速传感器: YES" +
getSensorDetail(Sensor.TYPE_ACCELEROMETER);
} else {
checkResult = checkResult + "加速传感器: NO\n";
}
// AMBIENT_TEMPERATURE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) != null) {
checkResult = checkResult + "温度计: YES" +
getSensorDetail(Sensor.TYPE_AMBIENT_TEMPERATURE);
} else {
checkResult = checkResult + "温度计: NO\n";
}
// GAME_ROTATION_VECTOR
if (mSensorManager.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR) != null) {
checkResult = checkResult + "游戏旋转矢量传感器: YES" +
getSensorDetail(Sensor.TYPE_GAME_ROTATION_VECTOR);
} else {
checkResult = checkResult + "游戏旋转矢量传感器: NO\n";
}
// GEOMAGNETIC_ROTATION_VECTOR
if (mSensorManager
.getDefaultSensor(Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR) != null) {
checkResult = checkResult + "地磁旋转矢量传感器: YES" +
getSensorDetail(Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR);
} else {
checkResult = checkResult + "地磁旋转矢量传感器: NO\n";
}
// GRAVITY
if (mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY) != null) {
checkResult = checkResult + "重力传感器: YES" +
getSensorDetail(Sensor.TYPE_GRAVITY);
} else {
checkResult = checkResult + "重力传感器: NO\n";
}
// GYROSCOPE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null) {
checkResult = checkResult + "陀螺仪: YES" +
getSensorDetail(Sensor.TYPE_GYROSCOPE);
} else {
checkResult = checkResult + "陀螺仪: NO\n";
}
// GYROSCOPE_UNCALIBRATED
if (mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE_UNCALIBRATED) != null) {
checkResult = checkResult + "未校准陀螺仪: YES" +
getSensorDetail(Sensor.TYPE_GYROSCOPE_UNCALIBRATED);
} else {
checkResult = checkResult + "未校准陀螺仪: NO\n";
}
// LIGHT
if (mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT) != null) {
checkResult = checkResult + "光线传感器: YES" +
getSensorDetail(Sensor.TYPE_LIGHT);
} else {
checkResult = checkResult + "光线传感器: NO\n";
}
// LINEAR_ACCELERATION
if (mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION) != null) {
checkResult = checkResult + "加速度传感器: YES" +
getSensorDetail(Sensor.TYPE_LINEAR_ACCELERATION);
} else {
checkResult = checkResult + "加速度传感器: NO\n";
}
// MAGNETIC_FIELD
if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null) {
checkResult = checkResult + "磁场传感器: YES" +
getSensorDetail(Sensor.TYPE_MAGNETIC_FIELD);
} else {
checkResult = checkResult + "磁场传感器: NO\n";
}
// MAGNETIC_FIELD_UNCALIBRATED
if (mSensorManager
.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED) != null) {
checkResult = checkResult + "未校准磁场传感器: YES" +
getSensorDetail(Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED);
} else {
checkResult = checkResult + "未校准磁场传感器: NO\n";
}
// ORIENTATION
if (mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) != null) {
checkResult = checkResult + "方向传感器: YES" +
getSensorDetail(Sensor.TYPE_ORIENTATION);
} else {
checkResult = checkResult + "方向传感器: NO\n";
}
// PRESSURE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) != null) {
Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
checkResult = checkResult + "压力传感器: YES" +
getSensorDetail(Sensor.TYPE_PRESSURE);
} else {
checkResult = checkResult + "压力传感器: NO\n";
}
// PROXIMITY
if (mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY) != null) {
checkResult = checkResult + "距离传感器: YES" +
getSensorDetail(Sensor.TYPE_PROXIMITY);
} else {
checkResult = checkResult + "距离传感器: NO\n";
}
// RELATIVE_HUMIDITY
if (mSensorManager.getDefaultSensor(Sensor.TYPE_RELATIVE_HUMIDITY) != null) {
checkResult = checkResult + "相对湿度传感器: YES" +
getSensorDetail(Sensor.TYPE_RELATIVE_HUMIDITY);
} else {
checkResult = checkResult + "相对湿度传感器: NO\n";
}
// ROTATION_VECTOR
if (mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) != null) {
checkResult = checkResult + "旋转矢量传感器: YES" +
getSensorDetail(Sensor.TYPE_ROTATION_VECTOR);
} else {
checkResult = checkResult + "旋转矢量传感器: NO\n";
}
// SIGNIFICANT_MOTION
if (mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION) != null) {
checkResult = checkResult + "显著运动传感器: YES" +
getSensorDetail(Sensor.TYPE_SIGNIFICANT_MOTION);
} else {
checkResult = checkResult + "显著运动传感器: NO\n";
}
// STEP_COUNTER
if (mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {
checkResult = checkResult + "计步传感器: YES" +
getSensorDetail(Sensor.TYPE_STEP_COUNTER);
} else {
checkResult = checkResult + "计步传感器: NO\n";
}
// STEP_DETECTOR
if (mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR) != null) {
checkResult = checkResult + "步伐探测器: YES" +
getSensorDetail(Sensor.TYPE_STEP_DETECTOR);
} else {
checkResult = checkResult + "步伐探测器: NO\n";
}
// TEMPERATURE
if (mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE) != null) {
checkResult = checkResult + "温度传感器: YES" +
getSensorDetail(Sensor.TYPE_TEMPERATURE);
} else {
checkResult = checkResult + "温度传感器: NO\n";
}
return checkResult;
}
/**
* Get sensor's detail info when exist, called by getSensorInfo().
*
* @param type
* @return Sensor Detail Information
*/
private String getSensorDetail(int type) {
Sensor sensor = mSensorManager.getDefaultSensor(type);
return " | Name:" + sensor.getName() + " | Vendor:" + sensor.getVendor() + " | Version:" +
sensor.getVersion() + " | Power:" + sensor.getPower() + " | Resolution:" +
sensor.getResolution() + " | MinDelay:" + sensor.getMinDelay() + " | Type:" +
sensor.getType() + " | MaxRange:" + sensor.getMaximumRange() + "\n";
}
2.获取编译信息
/**
* @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]";
}
}
3.获取Feature信息
private void getFeatureInfo() {
PackageManager pm = this.getPackageManager();
//List<FeatureInfo> list = new ArrayList<FeatureInfo>();
List list = new ArrayList();
FeatureInfo[] rawList = pm.getSystemAvailableFeatures();
for (int i = 0; i < rawList.length; i++) {
String[] strFeature = rawList[i].toString().split(" ");
list.add(strFeature[1]);
}
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.list_feature, R.id.tvFeature,
list);
ViewGroup.LayoutParams params = lvFeature.getLayoutParams();
View listItem = arrayAdapter.getView(0, null, lvFeature);
listItem.measure(0, 0);
params.height = listItem.getMeasuredHeight() * (list.size() + 1);
lvFeature.setLayoutParams(params);
lvFeature.setAdapter(arrayAdapter);
}
4.获取权限信息
private String getPermissionsInfo() {
File path = new File("/etc/permissions/");
File[] files = path.listFiles();
ArrayList name = new ArrayList();
if (files != null) {
for (File file : files) {
String fileName = file.getName();
if (fileName.endsWith(".xml")) {
name.add(fileName.substring(0,
fileName.lastIndexOf(".")).toString());
}
}
}
String permissionsInfo = "\nPermissions Info:\n";
for (int i = 0; i < name.size(); i++) {
permissionsInfo = permissionsInfo + name.get(i).toString() + "\n";
}
return permissionsInfo;
}
5.获取硬件信息
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 "";
}
}
6.获取电话信息
/**
* @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]";
}
}
7.获取显示信息
/**
* @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]";
}
}
8.获取时区信息
private String getLocaleInfo() {
TimeZone timeZone = TimeZone.getDefault();
String[] timeZoneArray = timeZone.toString().split("\"");
Locale locale = getResources().getConfiguration().locale;
String language = locale.getLanguage();
String country = locale.getCountry();
String displayLanguage = locale.getDisplayLanguage();
String displayCountry = locale.getDisplayCountry();
return "TimeZone:" + timeZoneArray[1] + "\n" + "Language:" + language + "_" +
country + " | " + displayLanguage + "(" + displayCountry + ")" + "\n";
}
9.获取摄像头个数
private String getCameraInfo() {
int cameraNum = Camera.getNumberOfCameras();
return "CameraNum:" + cameraNum + "\n";
}
10.获取后台运行服务Get Running Service
完整的代码可以在我的GitHub上看到,链接在文末。效果图:
转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui