很绕嘴的标题, 首先,来几张效果图吧:
貌似这是微信公众平台呀!但其实不是啦,以前一段时间一直在做微信公众平台的开发,但虽然好处很多,但是毕竟还需要用到微信作为中转站,于是我仿微信的公众平台而单独做的一个小应用。和我的微信公众平台所实现的功能都基本一致(因为后台是一样的),先看一下整个应用的代码结构:
和普通的Android程序一样,分为activity、domain、adapter、和util四个包,通过包名大家应该能够清楚每个包的作用,首先看一下主界面的主要代码洋洋洒啊洒一共三四百行,就不全不列出来了,主要是一些界面初始化,其中比较重要的一个地方就是获取服务器端的返回数据,看这段代码:
public void run() {
String url = "http://2.saymagic.sinaapp.com:80/weixin/sayweixin.php?keyword=";
url +=content;
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode() == 200){
result = EntityUtils.toString(httpResponse.getEntity(),"utf-8");
System.out.println(result);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
handler.post(runnableUi);
}
}.start();
其中http://2.saymagic.sinaapp.com:80/weixin/sayweixin.php极为服务端的网址,android应用新开一个线程进行联网操作,通过get方式向这个地址请求数据,这个网址是我封装好的一个接口,为了向开发者提供更方便的服务,只要你向其传递keyword参数,机会返回相关内容,如传递的参数为'笑话',就会返回一则笑话,具体规则请看我的另一篇文章http://blog.saymagic.cn/blog.php?id=3.(ps 您完全可以根据此接口来写您自己的应用,神码公众平台的,都会相当简单的)
接着,当我们收到返回数据的时候我们需要把 这个数据post到主线程去更新UI,所以会有下面两段代码:
handler.post(runnableUi);
Runnable runnableUi = new Runnable() {
@Override
public void run() {
ChatMsgEntity entity = new ChatMsgEntity();
entity.setDate(getDate());
entity.setName("小say");
entity.setMsgType(true);
entity.setText(result.trim());
setEntity(entity);
}
};
好的,其实主要代码就在主界面里了,其它都是小事情了,有一个判断当前是否联网的NetUtil类,提供了isNetworkAvailable函数,估计以后还会用到很多,在此记录下把。代码如下:
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
} else {
NetworkInfo[] info = cm.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
好的,主要的就是这些了,源码(ps:需要积分的,留下邮箱我会单独发的)。。
最后,欢迎大家关注我的微信公众帐号,功能和本程序一哦。
微信公众帐号二维码
: