You could write a phonegap plugin to return you the IMEI number. As the phonegap doesnt return imei for Android devices, it returns an random 64-bit number.
Here is a complete plugin to get the real IMEI number in a phonegap application (please note that this plugin is not "plugmanable" but if follow the instructions it will work. I have tested on phonegap 2.9. I am planning on writing a real "plugmanable" plugin with a few device information for phonegap 3.0).
Here is the java class for that extends from CordovaPlugin (DeviceInfo.java):
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;
public class DeviceInfo extends CordovaPlugin {
public DeviceInfo(){
}
public String DeviceImeiNumber(){
TelephonyManager tManager = (TelephonyManager)cordova.getActivity().getSystemService(Context.TELEPHONY_SERVICE);
return tManager.getDeviceId();
}
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
if (action.equals("imeiNumber")) {
callbackContext.success(this.DeviceImeiNumber());
return true;
}
else {
return false;
}
}
}
And then you need a js object so you can access your plugin on the other side (deviceinfo.js):
(function( cordova ) {
function DeviceInfo() {}
DeviceInfo.prototype.imeiNumber = function(win, fail) {
return cordova.exec(
function (args) { if(win !== undefined) { win(args); } },
function (args) { if(fail !== undefined) { fail(args); } },
"DeviceInfo", "imeiNumber", []);
};
if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.DeviceInfo) {
window.plugins.DeviceInfo = new DeviceInfo();
}
})( window.cordova );
Add your plugin on res/xml/config.xml file inside your project like this:
<plugins>
<plugin name="DeviceInfo" value="com.XXX.XXXXX.DeviceInfo"/>
</plugins>
And add the READ_PHONE_STATE permission inside your AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
After this you need to add you deviceinfo.js file into your page, and after the deviceready you can use your plugin like this:
plugins.DeviceInfo.imeiNumber(function(imei){
console.log("imei "+ imei);
});
*#06#
quick code, metioned by OP is way, way faster and easier. Doesn't require powering off the device. – Haldan