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

时间:2016-07-21 19:24:33

标签: java php android mysqli imei

我已经找到了很多关于它的回复,但所有回复都是用不赞成的函数编写的,或者在我的情况下不起作用。

我需要获取将安装我的应用程序的移动设备的IMEI号码(设备的unic ID),然后将该值(以字符串的形式)发送到位于文件夹I中的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
    }
}

我在清单中有<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/>

这是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);

?>

然而,并没有提到几乎所有功能,例如httpclient都被弃用,所以没有任何作用。

我给了php文件夹和我通过我的应用程序访问的文件的permitions 755(读取和执行),但没有任何反应...

我正在使用这些函数的“新版本”来获取imei然后将其发送到php文件吗?

是因为我的应用程序未将数据库中的imei保存在已弃用的功能中?

1 个答案:

答案 0 :(得分:0)

你可以参考这个,可能会帮到你

的java

taskId

PHP

 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();
                            }
                        }
                    }
                }