我们知道,如果是移动设备,厂家都提供了IMEI码写入及读出的方法。但由于我们的是非移动设备,可是我们也需要写入IMEI码,供第三方的软件读取,如正版地图等。我们找到frameworks/base/telephony/java/android/telephony/TelephonyManager.java这个文件,通过添加代码,让第三方的软件读取我们自定义的IMEI码即可。
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
public String getDeviceId() {
String deviceId = null;
try {
deviceId = getSubscriberInfo().getDeviceId();
} catch (RemoteException ex) {
//return null;
} catch (NullPointerException ex) {
//return null;
}
if (deviceId == null) {
deviceId = “012345678912345”;
}
try {
+Process process =Runtime.getRuntime().exec(“getprop xxx.xxx.imei”);
+InputStreamReader ir = new InputStreamReader(process.getInputStream());
+BufferedReader input = new BufferedReader(ir);
+deviceId=input.readLine();
}catch (IOException e){
}
return deviceId;
}
此时,我们只需在驱动中,将IMEI码写入xxx.xxx.imei这个属性即可。