Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在PhoneGap中获取IMEI号码?_Android_Cordova_Numbers_Imei - Fatal编程技术网

Android 如何在PhoneGap中获取IMEI号码?

Android 如何在PhoneGap中获取IMEI号码?,android,cordova,numbers,imei,Android,Cordova,Numbers,Imei,我正在使用jQuery、JavaScript和HTML开发PhoneGap Android移动应用程序。我想要手机IMEI。我已经尝试了这段代码 我得到的数字如下:97734a345d234d。 我已使用*#06#检查设备以获取IMEI号码。 我不知道它是否正确。您不能通过html或JavaScript访问IMEI。但是你可以编写一个应用程序来读取IMEI 打电话就行了。不要忘记,您需要清单中的权限。我相信,只有当您利用IMEI的其他应用程序日志记录时,才可能实现这一点,我不确定是否有 假设有人

我正在使用jQuery、JavaScript和HTML开发PhoneGap Android移动应用程序。我想要手机IMEI。我已经尝试了这段代码

我得到的数字如下:97734a345d234d。 我已使用
*#06#
检查设备以获取IMEI号码。
我不知道它是否正确。

您不能通过html或JavaScript访问IMEI。但是你可以编写一个应用程序来读取IMEI


打电话就行了。不要忘记,您需要清单中的权限。

我相信,只有当您利用IMEI的其他应用程序日志记录时,才可能实现这一点,我不确定是否有

假设有人这样做,理想情况下是一个系统应用程序,您可以读取日志并解析它们以获取该信息


祝你好运,用成功/失败发回

在扩展DroidGap类的类中获取IMEI编号,并将IMEI编号的值保存在静态成员中,然后从任何需要的地方访问此静态字段。。。示例代码在这里

public class MyApp extends DroidGap
{
    private static String imei; 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        imei=tm.getDeviceId();
    }
    static public String getIMEI(){
        return imei;
    }
}
// where ever u need imei number use this code

String imei=MyApp.getIMEI();
你指的是。它非常古老,缺少很多信息。例如,如果您阅读了同一页,您会注意到一条注释,其中指出,
device.uuid
仅在Tizen平台的情况下返回IMEI编号。你提到的所有其他平台,包括Android,都会返回其他东西

您无法在纯HTML/Javascript(通过PhoneGap构建编译的应用程序)中获取设备的IMEI。要阅读它,您必须在本地构建,仅针对Android平台,并包含一些本机插件,这些插件将为您完成这项工作——例如。

您可以使用Phonegap中的“设备”对象。由于“设备”被分配给窗口对象,因此它隐式地位于全局范围内,因此您可以轻松地在onDeviceReady函数中调用它,例如:

var deviceID = device.uuid
请注意,在Android上,它以字符串形式返回一个随机的64位整数。整数是在设备第一次启动时生成的。在BlackBerry上,它返回设备的PIN码。这是一个9位数的唯一整数,作为字符串,在iPhone上它返回由多个硬件标识创建的哈希值字符串。它保证对每个设备都是唯一的,并且不能绑定到用户帐户


查看完整示例

您可以编写一个phonegap插件来返回IMEI号码。由于phonegap不会返回Android设备的imei,因此它会返回一个随机的64位数字

这是一个完整的插件,可以在phonegap应用程序中获得真实的IMEI号码(请注意,这个插件不是“可插拔的”,但如果按照说明操作,它就会工作。我已经在phonegap 2.9上进行了测试。我计划为phonegap 3.0编写一个带有一些设备信息的真实“可插拔的”插件

下面是从CordovaPlugin(DeviceInfo.java)扩展而来的java类:

然后你需要一个js对象,这样你就可以在另一端访问你的插件(deviceinfo.js):

在项目中的res/xml/config.xml文件中添加插件,如下所示:

<plugins>
    <plugin name="DeviceInfo" value="com.XXX.XXXXX.DeviceInfo"/>
</plugins>
plugins.DeviceInfo.imeiNumber(function(imei){
   console.log("imei "+ imei);                   
});

您可以这样更改platforms/android/src/org/apache/cordova/device/device.java中定义的getUuid函数

public String getUuid() {
    //String uuid = Settings.Secure.getString(this.cordova.getActivity().getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
    TelephonyManager tManager = (TelephonyManager)this.cordova.getActivity().getSystemService(Context.TELEPHONY_SERVICE);
    String uuid = tManager.getDeviceId();
    return uuid;
}
只需注释第一行并添加两个新行

您还必须添加

import android.content.Context;
import android.telephony.TelephonyManager;

我已经为cordova(仅适用于Android设备)创建了一个名为
cordova插件IMeiGeter
的插件,它可以满足您的需求。我希望它能帮助你


安装:

cordova plugin add https://github.com/tomloprod/cordova-plugin-imeigetter.git

用法:

cordova plugin add https://github.com/tomloprod/cordova-plugin-imeigetter.git
此插件使用名为
get
的方法导出对象:

window.plugins.imeiGetter.get(function(imei){
   console.log(imei);
});


GitHub:

getDeviceId()
也是一个不错的选择,如果它可以与phonegapI一起使用,我是否尝试过这个getDeviceId()。但是我得到的错误是网络状态1=引用错误:找不到变量getDeviceId,我想你唯一的赌注是以某种方式实现我在上面的回答中所描述的。我已经尝试过这个getDeviceId().但是我得到的错误是网络状态1=参考错误:找不到变量getDeviceId@Priya链接函数
getDeviceId()
返回一个字符串。你写过Android应用程序吗?还要注意:
您不直接实例化这个类;相反,您可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)检索对实例的引用。
要确认IMEI,它通常打印在电池下或隐藏的地方(如果可以的话,打印在盒子上)。@StackOverflow正如您正确指出的,它通常打印在电池下,以便阅读,需要关闭设备并卸下电池。使用OP提供的快速代码是一种更快、更简单的方法。不需要关闭设备电源。@如果您可以提供一些代码以编程方式卸下电池并读取打印的IMEI.lol@you wise asses,包括@CodeBling,StackOverflow将非常有用。他的部分问题是:“我不知道这是对还是错。”。我只是说他如何确认他从*06获得的数字是否准确。@StackOverflow哈哈好的,我想他的意思是他不确定十六进制数字是否正确-在我看来,如果转换为十进制,它可能是有效的*#06#是在大多数电话上获取IMEI的一种众所周知的方法。例如!皮蒂,我只能给你+1。谢谢@bschandramohan您需要创建一个插件,通过JS调用一些本机代码(PhoneGap),请参见以下链接:@UDcreate,我很乐意提供帮助!
cordova plugin add https://github.com/tomloprod/cordova-plugin-imeigetter.git
window.plugins.imeiGetter.get(function(imei){
   console.log(imei);
});