Вы можете написать плагин phonegap, чтобы вернуть вам номер IMEI. Поскольку телефонная щель не возвращает imei для устройств Android, она возвращает случайное 64-разрядное число.
Вот полный плагин для получения реального номера IMEI в приложении phonegap (обратите внимание, что этот плагин не «подключаемый», но если следовать инструкциям, он будет работать. Я проверил на phonegap 2.9. Я планирую написать настоящий «подключаемый» плагин с несколькими сведениями об устройстве для phonegap 3.0).
Вот класс java для которого происходит от 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;
}
}
}
И тогда вам нужен объект js, чтобы вы могли получить доступ к своему плагину с другой стороны (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 );
Добавьте ваш плагин в файл res / xml / config.xml внутри вашего проекта следующим образом:
<plugins>
<plugin name="DeviceInfo" value="com.XXX.XXXXX.DeviceInfo"/>
</plugins>
И добавьте разрешение READ_PHONE_STATE в свой AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
После этого вам нужно добавить файл deviceinfo.js на свою страницу, а после deviceready вы можете использовать свой плагин так:
plugins.DeviceInfo.imeiNumber(function(imei){
console.log("imei "+ imei);
});