之前有跟友人想过做一个快递的软件,但是毕竟忙,没有完全做好。最近又遇上极客学院在搞一些app的比赛,索性乘这个机会,顺便将这毕竟好用的快递api带给大家。源代码已经在github 上开源。https://github.com/arjinmc/OpenExpress 。我也征求了快递api作者的意见,可以把这个东西开源并且宣传。
本项目使用了开源项目AndroidResideMenu,也就是大家所熟悉手机QQ 5.0的menu效果。还有数据库框架Ormlite。
AndroidResideMenu,它给的例子也比较详细了,很容易用。不懂稍微看一下英文注释也会明白。
Ormlite是否常用,我不是很清楚。但是相对于经常是手写去操作数据库的我来说,Ormlite确实很方便,也不需要自己再去考虑线程安全问题。它所提供的增删改查,事务这些功能都比较全。看到网上有人说Ormlite是不可以进行批量删除的,这个我要澄清一下,Ormlite上有批量删除功能,也有一次性清空表功能。这个方法我已经写在OpenExpress里面,但是参与eoe的时候,我没有在UI上加上这个功能。Ormlite有点麻烦就是需要基于它的OrmliteBaseAcitity,参考了一些网上的做法,我也把这个工具类整理出来,这样就可以不需要在基于OrmliteBaseActitiy就可以轻松使用。
package com.arjinmc.ormlitedemo.utils;
import android.content.Context;
import com.j256.ormlite.android.apptools.OpenHelperManager;
public class DataHelperUtil {
private static DBOpenHeleper databaseHelper = null;
/**
* @desciption get database connection
* @author Eminem Lu
* @email arjinmc@hicsg.com
* @create 2015/2/26
* @param context
* @return
*/
public static DBOpenHeleper getHelper(Context context) {
if (databaseHelper == null) {
databaseHelper = OpenHelperManager
.getHelper(context, DBOpenHeleper.class);
}
return databaseHelper;
}
/**
* @desciption release database connection
* @author Eminem Lu
* @email arjinmc@hicsg.com
* @create 2015/2/26
*/
public static void releaseHelper(){
if (databaseHelper != null) {
OpenHelperManager.releaseHelper();
databaseHelper = null;
}
}
}
http://api.ickd.cn/?id=[]&secret=[]&com=[]&nu=[]&type=[]&encode=[]&ord=[]&lang=[]
参数说明
字段 | 是否必须 | 说明 |
---|---|---|
com | 必须 | 快递公司代码(英文),所支持快递公司见如下列表 |
nu | 必须 | 快递单号,长度必须大于5位 |
id | 必须 | 授权KEY,申请请点击快递查询API申请方式 |
在新版中ID为一个纯数字型,此时必须添加参数secret(secret为一个小写的字符串) | ||
secret | 必选(新增) | 该参数为新增加,老用户可以使用申请时填写的邮箱和接收到的KEY值登录http://api.ickd.cn/users/查看对应secret值 |
type | 可选 | 返回结果类型,值分别为 html | json(默认) | text | xml |
encode | 可选 | gbk(默认)| utf8 |
ord | 可选 | asc(默认)|desc,返回结果排序 |
lang | 可选 | en返回英文结果,目前仅支持部分快递(EMS、顺丰、DHL) |
返回格式
编码: GBK| UTF8
示例: