中华万年历插件开发说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中华万年历插件开发说明书江苏华易科技有限公司
文件变更记录
目录
1.概述 (3)
2.请求接口 (3)
2.1请求农历: (3)
2.2请求提醒: (4)
2.3请求天气 (4)
2.4请求自定义程序 (5)
3.插件开发 (5)
3.1定义广播 (5)
3.2注册广播 (6)
3.3创建布局文件 (7)
3.4绑定布局 (7)
3.5时间更新 (7)
1.概述
本文档适用于中华万年历桌面插件的开发,该文档为客户端功能开发提供依据和参考。客户端端需按照本文档注明的功能点进行开发,并确保功能的可使用性。本文档以最新版为主,新版发布后旧版自动作废。
2.请求接口
请求前提:已安装中华万年历。
2.1请求农历:
Cursor
cur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/nongli/"+todayString), null, null, null, null);
i f(cur!=null){
Bundle bundle=cur.getExtras();
if(bundle!=null){
widgetBean.year_n=bundle.getString("nong_year");
widgetBean.month_n=bundle.getString("nong_month");
widgetBean.date_n=bundle.getString("nong_date");
widgetBean.year_gz=bundle.getString("nong_year_gz")+"年";
widgetBean.month_gz=bundle.getString("nong_month_gz")+"月";
widgetBean.date_gz=bundle.getString("nong_date_gz")+"日";
}
cur.close();
}
参数描述:
/nongli/:代表请求的是农历信息。
todayString:必须为8位代表当前日期的数字,如:20100201。
参数对应数据:
nong_year:农历年
nong_month:农历月
nong_date:农历日
nong_year_gz:农历年干支
nong_month_gz:农历月干支
nong_date_gz:农历日干支
2.2请求提醒:
Cursor
cur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/tixing/"+todayString), null, null, null, null);
i f(cur!=null){
Bundle bundle=cur.getExtras();
if(bundle!=null){
widgetBean.tixing=bundle.getString("tixing");
}
cur.close();
}
参数描述:
/tixing/:代表请求的是提醒信息。
todayString:必须为8位代表当前日期的数字,如:20100201。
参数对应数据:
Tixing:包括日程、节日等信息。
2.3请求天气
Cursor
cur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/weather/"+todayString+"/"+actionType), null, null, null, null);
if(cur!=null){
B undle bundle=cur.getExtras();
i f(bundle!=null){
String resultCode=bundle.getString("resultCode");
if(resultCode.equals("1000")){
widgetBean.city=bundle.getString("city");
widgetBean.nowTemp=bundle.getString("nowTemp");
}else if(resultCode.equals("1001")){
//暂无数据
}else if(resultCode.equals("1003")){
//当前只有一个城市
}else{
//更新失败
}
}
c ur.close();
参数描述:
/weather/:代表请求的是天气信息。
todayString:必须为8位代表当前日期的数字,如:20100201。
actionType:1代表获取当前城市天气,2代表刷新当前城市天气,3代表切换到下一个城市。参数对应数据:
resultCode:返回参数,1000表示成功,1001表示暂无数据,1002表示当前只有一个城市,其他值表示更新失败。
city:城市
nowTemp:当前温度
weather:天气信息
2.4请求自定义程序
Cursor
cur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/widgetSettings"), null, null, null, null);
if(cur!=null){
Bundle bundle=cur.getExtras();
if(bundle!=null){
startApplicationByPackageName(ctx,
bundle.getString("packageName"), null);
MyPreferences.getInstance(ctx).setIsWidgetUse24Hours(bundle.getBoolea n("IsWidgetUse24Hours"));
}
cur.close();
}else{
startApplicationByPackageName(ctx,"default", null);
}
参数描述:
/widgetSettings:代表请求的是用户自定义信息。
参数对应数据:
packageName:插件自定义区域点击事件包名。
IsWidgetUse24Hours:是否以24小时制显示时间。
3.插件开发
注:为了避免在Launcher中出现插件对应的程序,需把AndroidManifest.xml中Activity对应的UNCHER属性去掉。
3.1定义广播