聚合数据Android SDK 12306火车票查询订票演示示例
1.聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据.
2.下载聚合数据SDK,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libs\armeabi目录下,如图:
3. 根据接口说明文档找到以下方法:
/** * 获取车次 * * @param name * 车次 * @param jsonCallBack */ public void getTrainNum(String name, JsonCallBack jsonCallBack) /** * 站到站查询 * * @param start * 出发站 * @param end * 终点站 * @param traintype * 列车类型 * @param jsonCallBack */ public void getS2S(String start, String end, String traintype, JsonCallBack jsonCallBack) /** * 12306实时余票查询 * * @param from * 出发站 * @param to * 到达站 * @param date * 出发日期 默认今天 * @param traintype * 车次类型 * @param jsonCallBack */ public void getTicketleft(String from, String to, String date, String traintype, JsonCallBack jsonCallBack) /** * 12306订票①:查询车次 * * @param from * 出发站 * @param to * 到达站 * @param date * 出发日期 * @param traintype * 车次类型 * @param jsonCallBack */ public void bookTrainNum(String from, String to, String date, String traintype, JsonCallBack jsonCallBack) /** * * @param name * 乘客姓名 * @param seat * 座位类型:商务座:9,一等座:M,二等座:O,特等座:P,高级软卧:6,软卧:4,硬卧:3,软座:2,硬座:1,无座:0 * @param mobile * 乘客手机号码 * @param idcard * 乘客***号码 * @param username * 12306官网账号 * @param password * 12306官网密码 * @param train_no * 步骤①对应车次返回值 * @param station_train_code * 步骤①对应车次返回值 * @param from_station_telecode * 步骤①对应车次返回值 * @param to_station_telecode * 步骤①对应车次返回值 * @param from_station_name * 步骤①对应车次返回值 * @param to_station_name * 步骤①对应车次返回值 * @param secretStr * 步骤①对应车次返回值 * @param jsonCallBack */ public void bookTicket(String name, String seat, String mobile, String idcard, String username, String password, String train_no, String station_train_code, String from_station_telecode, String to_station_telecode, String from_station_name, String to_station_name, String secretStr, JsonCallBack jsonCallBack)
4.程序中调用方法
首先,在AnroidManifest.xml中添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_CONTACTS" />
在application标签内部加入你申请的openid
<meta-data android:name="com.thinkland.juheapi.openid" android:value="申请的openid" />
在使用前需要调用一次初始化方法
CommonFun.initialize(getApplicationContext());
导入相关包
import com.thinkland.juheapi.common.CommonFun; import com.thinkland.juheapi.common.JsonCallBack; import com.thinkland.juheapi.data.train.TrainData;
调用方法
//站站查询 TrainData trainData = TrainData.getInstance(); trainData.getS2S("上海虹桥", "苏州园区", "G", new JsonCallBack() { @Override public void jsonLoaded(JSONObject arg0) { // TODO Auto-generated method stub try { int resultcode = arg0.getInt("resultcode"); if (resultcode == 200) { JSONArray resultJson = arg0.getJSONArray("result"); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } });
5.返回字段及相关错误码
public voidgetTrainNum(String name, JsonCallBack jsonCallBack)
返回字段:
public void getS2S(String start,String end, String traintype,JsonCallBack jsonCallBack)
返回字段:
public void getTicketleft(String from, String to,String date, String traintype,JsonCallBack jsonCallBack)
返回字段:
publicvoid bookTrainNum(String from, String to,String date,String traintype, JsonCallBack jsonCallBack)
返回值:
public voidbookTicket(String name, String seat, String mobile,
String idcard, String username, String password, String train_no,
String station_train_code, String from_station_telecode,
String to_station_telecode, String from_station_name,
Stringto_station_name, String secretStr, JsonCallBack jsonCallBack)
返回码: