我已经找到了很多关于它的回复,但所有回复都是用不赞成的函数编写的,或者在我的情况下不起作用。
我需要获取将安装我的应用程序的移动设备的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保存在已弃用的功能中?
答案 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();
}
}
}
}