目前,我的 Android 应用程序中有一段代码可以获取设备的 IMEI 并将该 IMEI 作为参数发送到托管在 Internet 上的 PHP 脚本。
然后 PHP 脚本采用 IMEI 参数并检查文件以查看文件中是否存在 IMEI,如果存在,我希望能够让我的 Android 应用程序知道 IMEI 存在。所以基本上我只想能够将 True 返回到我的应用程序。
这可能使用 PHP 吗?
到目前为止,这是我的代码:
安卓/Java
//Test HTTP Get for 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();
}
}
}
}
上面将 IMEI 作为参数发送给 PHP 脚本,PHP 脚本成功获取它并成功运行文件检查,但是如果 IMEI 匹配,我需要能够从 PHP 脚本发回肯定响应一个在文件中。
这是 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);
?>
因此,我希望能够让我的应用程序知道已找到 IMEI,而不是 echo True,这可能吗?如果可以,我应该使用什么来实现它?
最佳答案
这是个好东西!实际上,你快到了。你的 php 不应该改变,你的 java 应该!您只需要检查您的 Java 代码中的响应结果。将您的 java 方法重新声明为
public String executeHttpGet() {
然后,让这个方法返回变量page。
现在您可以在某处创建辅助方法。如果你把它和 executeHttpGet 放在同一个类中,它看起来像这样:
public boolean imeiIsKnown(){
return executeHttpGet().equals("True");
}
现在您可以调用此方法来查明您的 imei 是否在您的 php 后端已知。
关于java - 从 PHP 向 Android/Java 移动应用程序发送响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624440/