我正在制作一个位置应用程序,用户可以在其中参数一些来自服务器的功能,所以我希望服务器开始与用户的电话进行通信。但首先,我想从 php.ini 打开与 android 的通信。
有没有办法从 php 服务器与 android 手机通信?
我已经使用了从 android 与 HTTP 到服务器的通信,返回值为JSONObject
,但我找不到任何用于 php 调用 android 的东西。
我认为它就像可以让您的手机响铃的应用程序。
您需要让 Android 客户端连接到您的服务器并传递您的 JSON 消息。如果客户端需要从服务器获取一些数据并断开连接,那么您可以使用普通的 HTTP 类型 GET。
但是,如果您决定需要一个长时间运行的 TCP 连接双向传递 JSON,那么您应该考虑使用 WebSockets 之类的东西。我写了一个Android WebSocket 演示。默认情况下,Android 客户端连接到 websocket.org 回显服务器,但可以轻松更改。
我还发现了一个PHP WebSockets implementation。
现在,如果您的计划是在没有客户端启动连接的情况下将消息从服务器推送到客户端,您将需要 GCM(谷歌云消息传递)之类的东西。这是一篇涵盖GCM 和 PHP的文章。
Google Cloud Messaging for Android (GCM) 是一项服务,可让您将数据从服务器发送到用户的 Android 设备。这可能是一条轻量级消息,告诉您的应用程序要从服务器获取新数据(例如,朋友上传的电影),也可能是一条包含高达 4kb 有效负载数据的消息(因此即时消息等应用程序可以直接消费消息)。
通常,创建从服务器端到客户端的连接很复杂,因为:
使用 Web:这取决于浏览器如何支持 JavaScript API,尤其是新的 HTML5 功能,例如服务器发送事件
为了使服务器能够通过 HTTP 或使用专用的服务器推送协议将数据推送到网页,本规范引入了 EventSource 接口。
请使用下面的链接使用 php 在 mysql 中存储数据,并且您需要创建 web 服务,您将从 php 服务器获得两个响应
1) json
2) xml
如果您显示示例,请访问以下链接 在 php 中创建基本 Web 服务
还可以访问此链接以获得更好的描述 http://phpmaster.com/lets-talk-1/
您可以使用 HTTpReq 类:
public class HttpReq {
public String send (String url){
//send a http request and get the result
InputStream is = null;
String result = "";
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection " + e.toString());
}
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
return result;
}
}
然后你使用这个类来建立连接并调用你的 php 文件来获取数据作为 JSonObject 。
ht = new HttpReq();
// send a http request with GET
x=ht.send("http://10.0.2.2/myFolder/myFile.php");
JSONArray jArray;
JSONObject json_data;
String h[]=x.split("<");
try {
jArray = new JSONArray(h[0]);
json_data = jArray.getJSONObject(0);
url=json_data.getString("url");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在您的 Php 文件中,您可以使用此方法获取 JSON 数据或将其发送到 android App
Json_decode($string);
和
Json_encode($string);
我希望这会帮助你:)