Android应用(本机应用)与Android之间进行通信的最佳方式是什么? GAE上的桌面应用程序(C#/ Java客户端)? 我找到的一种方法是Channel API。不幸的是,除了Javascript支持Channel API之外,我发现没有客户端脚本。 另一种方法是创建一个静态类并通过这些静态变量进行通信。
这是我想要实现的目标:
实际上我正试图从我的手机上的Windows命令提示符下执行命令。
答案 0 :(得分:1)
怎么样:
Android< - > App Engine:C2DM
这是关于它的好视频:
http://www.youtube.com/watch?v=M7SxNNC429U
C#/ Java< - > App Engine:Http Post / Get,在app引擎端创建一个http servlet。 和c#/ java上的标准http请求。
这是一个关于servlet方面的博客:
http://zawoad.blogspot.com/2010/04/how-to-call-servlet-in-gwt.html
答案 1 :(得分:0)
基本上这就是它的工作原理:
GAE处理程序通过http从移动设备接收消息,并将其存储到数据存储区。以下是移动设备通过http:
完成的请求示例POST http://myapp.appspot.com/messages
Content-type: application/json
{"message":"Message from mobile device","userid":"myuserid",[other data..]}
桌面应用程序通过http向GAE发出重复请求(每10秒左右)。如果没有新消息,GAE处理程序将给出空响应,但如果消息已到达,则消息从数据存储区加载并通过http提供,因此应用程序将接收消息。这是请求示例:
GET http://myapp.appspot.com/messages?last_message_id=...
数据库查询示例:
SELECT * FROM messages WHERE message_id > LAST_MESSAGE_ID
回应示例:
Content-type: application/json
[{'id':1, 'message':'Message 1 from mobile device','userid':1},
{'id':2, 'message':'Message 2 from mobile device','userid':1}]
使用Channel-API,可以发出一个长请求(长轮询),而不是每10秒重复一次。它效率更高,但如果库不存在则更难实现。
我不推荐您使用特定的库,因为我不使用C#或Java编写代码,但您只需要一个可以发出http请求的库,以及一个以您选择的格式对数据进行编码和解码的库。我的例子中使用了JSON数据编码。