java — получает IMEI мобильного устройства и отправляет его через POST в файл php

Я нашел много ответов об этом, но все они написаны с устаревшими функциями или не работают в моем случае.

Мне нужно получить номер IMEI (уникальный идентификатор устройства) мобильного устройства, на котором будет установлено мое приложение, а затем отправить это значение (в виде строки) в файл php, расположенный в папке, которую я создал в моем веб-сайт (потому что у приложения есть веб-просмотр, где я визуализирую этот веб-сайт и хочу сохранить 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 не рекомендуется, ничего из этого не работает.

Я дал разрешения 755 (чтение и выполнение) для папки php и файла, к которому я обращаюсь через мое приложение, но ничего не происходит …

Есть ли какая-либо «новая версия» тех функций, которые я использую, чтобы получить imei и затем отправить его в файл php?

Из-за устаревших функций мое приложение не сохраняет imei в базе данных?

0

Решение

Вы можете сослаться на это, может помочь вам

Джава

 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

<?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);

?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]