/** * 获取CPU序列号 * * @return CPU序列号(16位) * 读取失败为"0000000000000000" */ private static String getCPUSerial() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { return Build.getSerial(); } //读取CPU信息 InputStreamReader inputStreamReader = null; BufferedReader bufferedReader = null; String cpu = null; try { Process process = Runtime.getRuntime().exec("cat /proc/cpuinfo"); inputStreamReader = new InputStreamReader(process.getInputStream()); bufferedReader = new BufferedReader(inputStreamReader); while ((cpu = bufferedReader.readLine()) != null) { if (cpu.contains("Serial")) { cpu = cpu.substring(cpu.indexOf(":") + 1).trim(); break; } } } catch (IOException e) { e.printStackTrace(); } finally { if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } if (inputStreamReader != null) { try { inputStreamReader.close(); } catch (IOException e) { e.printStackTrace(); } } } return cpu != null ? cpu.toUpperCase() : "0000000000000000"; }