Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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
Java 获取移动设备的IMEI并通过POST将其发送到php文件_Java_Php_Android_Imei - Fatal编程技术网

Java 获取移动设备的IMEI并通过POST将其发送到php文件

Java 获取移动设备的IMEI并通过POST将其发送到php文件,java,php,android,imei,Java,Php,Android,Imei,我已经找到了很多关于它的回复,但它们都是用不推荐的函数编写的,或者在我的例子中不起作用 我需要获取安装我的应用程序的移动设备的IMEI号(设备的unic ID),然后将该值(以字符串形式)发送到位于我在网站中创建的文件夹中的php文件(因为该应用程序有一个webview,我在其中可视化该网站,并希望将IMEI保存到数据库中) 到目前为止,我在代码中得到了以下信息: public void postData() { // Create a new HttpClient and Post H

我已经找到了很多关于它的回复,但它们都是用不推荐的函数编写的,或者在我的例子中不起作用

我需要获取安装我的应用程序的移动设备的IMEI号(设备的unic ID),然后将该值(以字符串形式)发送到位于我在网站中创建的文件夹中的php文件(因为该应用程序有一个webview,我在其中可视化该网站,并希望将IMEI保存到数据库中)

到目前为止,我在代码中得到了以下信息:

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.chapatelo.hol.es/php/postIMEI.php");

    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("IMEI", telephonyManager.getDeviceId()));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.chapatelo.hol.es/php/postIMEI.php");
TelephonyManager TelephonyManager=(TelephonyManager)getSystemService(Context.TELEPHONY_服务);
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(1);
添加(新的BasicNameValuePair(“IMEI”,telephonyManager.getDeviceId());
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
}
我在清单中有

这是php文件:

<?php

require_once("conexion.php");

if(!isset($_SESSION)){
    session_start();
}

$imei = $_POST["IMEI"];

$query1 = "SELECT * FROM usuarios WHERE imei = '$imei'";

if($resp1 = mysqli_query($conexion, $query1)){

    if(mysqli_num_rows($resp1) == 0){

        $query2 = "INSERT INTO usuarios (imei) VALUES ('$imei')";

        if(mysqli_query($conexion, $query2)){
            $_SESSION["imei"] = $imei;
            echo true;
        }else{
            echo "error de conexión";
        }

    }else{
        echo "Ya existe el imei en la db";
    }
}else{
    echo "error de conexión";
}

mysqli_close($conexion);

?>

您可以参考此内容,可能会对您有所帮助

爪哇

php



使用日志,查看您是否获得IMEI号码,以及所述HTTP方法是否实际正常工作。在后端也使用错误日志。检查故障是在Android端还是在PHP端,以便缩小出错范围!目前,有了这些信息,我认为没有什么帮助。不是每个安卓设备都有IMEI。我相信CDMA不使用它(或者是GSM?两者之一),没有手机数据的平板电脑也不会。至于它没有保存-你的日志中有没有找到web服务器?试着找出哪部分坏了。@Narayan Acharya我对android或java不太了解。我是android“世界”的新手。您能告诉我如何在我的代码中实现这些错误处理程序吗?您需要请求运行时权限才能读取电话状态,因为这被认为是一种危险的权限。嗯,据我所知,每个设备都有一个名为imei的unic ID。但是在你说了这些之后,我不太确定。。。我没有受到服务器端的任何影响,我不知道如何找出问题是在代码中还是在服务器端。我测试了php文件并与我的网站连接(从pc机上),然后通过ajax向该文件发送一个虚假的imei,这样我就可以知道是否一切正常。它做到了…谢谢你的回复。我不明白为什么你写了一个代码来创建一个包含imei的文件,作为php文件中的纯文本。。。我需要将其保存到服务器中,而不是保存到包含IMEI列表的文件中。无论如何,我将测试java代码。这似乎是有益的!我会告诉你它是否有效。
 public void executeHttpGet() throws Exception {
                    BufferedReader in = null;
                    try {
                        HttpClient client = new DefaultHttpClient();
                        HttpGet request = new HttpGet();
                        request.setURI(new URI("http://testsite.com/" +
                                "imei_script.php?imei=" + telManager.getDeviceId()
                                ));
                        HttpResponse response = client.execute(request);
                        in = new BufferedReader
                        (new InputStreamReader(response.getEntity().getContent()));
                        StringBuffer sb = new StringBuffer("");
                        String line = "";
                        String NL = System.getProperty("line.separator");
                        while ((line = in.readLine()) != null) {
                            sb.append(line + NL);
                        }
                        in.close();
                        String page = sb.toString();
                        System.out.println(page);
                        } finally {
                        if (in != null) {
                            try {
                                in.close();
                                } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
<?php
    // to return plain text
    header("Content-Type: plain/text"); 
    $imei = $_GET["imei"];

    $file=fopen("imei.txt","r") or exit("Unable to open file!");

    while(!feof($file))
     {
    if ($imei==chop(fgets($file)))
     echo "True";
     }

    fclose($file);

?>