Android SDK V2.0 简易开发指南
该文档仅适用于Android版本聚合数据SDK,下面是简易的开发流程说明。详细问题您可以通过
相关下载 下载相应的文档、示例包、SDK。
一、开发工具
Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。
二、工程配置
将juhe_sdk_v_X_X.jar以及armeabi文件夹(内包含libJuheSDK_v_X_X.so)添加到工程中libs文件夹下,Android工程会自动将libs文件夹下的jar导入。
三、调用SDK
①:先通过聚合数据中心(
http://www.juhe.cn/docs)申请所需的数据服务。
②:创建并配置工程(具体方法参见工程配置部分的介绍);
③:在AndroidManifest中添加开发密钥(OPENID)、所需权限等信息;密钥在个人中心->基本资料 页面获取。
②:创建并配置工程(具体方法参见工程配置部分的介绍);
③:在AndroidManifest中添加开发密钥(OPENID)、所需权限等信息;密钥在个人中心->基本资料 页面获取。
1、在application中添加开发密钥
<meta-data
android:name="com.thinkland.juheapi.openid"
注意:
a. android:name中name的属性值不能修改,直接复制即可,修改后无法通过验证
b. android:value中value的属性“开发者OpenID”请在聚合会员中心查看
2、添加所需权限
<uses-permission android:
name=
"android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android: name= "android.permission.INTERNET" />
<uses-permission android: name= "android.permission.ACCESS_WIFI_STATE" />
<uses-permission android: name= "android.permission.ACCESS_COARSE_LOCATION " />
<uses-permission android: name= "android.permission.READ_PHONE_STATE" />
如下图所示:
<uses-permission android: name= "android.permission.INTERNET" />
<uses-permission android: name= "android.permission.ACCESS_WIFI_STATE" />
<uses-permission android: name= "android.permission.ACCESS_COARSE_LOCATION " />
<uses-permission android: name= "android.permission.READ_PHONE_STATE" />
如下图所示:
④:在调用接口之前需要初始化聚合数据SDK,只需要初始化一次即可。需要在Application中调用初始化方法
import com.thinkland.sdk.android.SDKInitializer;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
SDKInitializer.initialize(getApplicationContext());
}
//开始访问聚合数据 以菜谱大全为例
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Parameters params = new Parameters();
params.add("key","f0620a7612c0ea78fa8bce1f5fd9df79");
params.add("menu","快手菜");
params.add("dtype", "json");
params.add("rn", 5);
JuheData.executeWithAPI(this, 46, "http://apis.juhe.cn/cook/query.php", JuheData.GET, params, new DataCallBack() {
@Override
public void onFailure(int arg0, String arg1, Throwable arg2) {
Toast.makeText(MainActivity.this,arg2.getMessage(),0).show();
}
@Override
public void onFinish() {
}
@Override
public void onSuccess(int arg0, String arg1) {
try {
JSONObject json = new JSONObject(arg1);
JSONObject data = json.getJSONObject("result");
JSONArray jsonArray = data.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); ++i) {
JSONObject o = (JSONObject) jsonArray.get(i);
System.out.println("imtro:" + o.getString("imtro"));
JSONArray jsonArray2 = o.getJSONArray("steps");
for (int j = 0; j < jsonArray2.length(); ++j){
JSONObject o2 = (JSONObject) jsonArray2.get(j);
System.out.println("step:" + o2.getString("step"));
}
}
} catch (JSONException e) { // 解析异常
e.printStackTrace();
}
}
});
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Parameters params = new Parameters();
params.add("key","f0620a7612c0ea78fa8bce1f5fd9df79");
params.add("menu","快手菜");
params.add("dtype", "json");
params.add("rn", 5);
JuheData.executeWithAPI(this, 46, "http://apis.juhe.cn/cook/query.php", JuheData.GET, params, new DataCallBack() {
@Override
public void onFailure(int arg0, String arg1, Throwable arg2) {
Toast.makeText(MainActivity.this,arg2.getMessage(),0).show();
}
@Override
public void onFinish() {
}
@Override
public void onSuccess(int arg0, String arg1) {
try {
JSONObject json = new JSONObject(arg1);
JSONObject data = json.getJSONObject("result");
JSONArray jsonArray = data.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); ++i) {
JSONObject o = (JSONObject) jsonArray.get(i);
System.out.println("imtro:" + o.getString("imtro"));
JSONArray jsonArray2 = o.getJSONArray("steps");
for (int j = 0; j < jsonArray2.length(); ++j){
JSONObject o2 = (JSONObject) jsonArray2.get(j);
System.out.println("step:" + o2.getString("step"));
}
}
} catch (JSONException e) { // 解析异常
e.printStackTrace();
}
}
});
}