的通信协议息息相关。
(1)导入
在本地的文件夹里去寻找.md格式菜单导入菜谱中,具体代码如下: public void import2() {
a.startActivityForResult(new Intent(a, ChoiceFileActivity.class),
ToChoiceFile);//手机系统文件列表
}
(2)导出
public void export() {
//选择菜谱的菜单导出到手机,他是.md格式
Intent in=new Intent(a, MenuSelectActivity.class);//跳转
MenuSelectActivity,选择要导出的菜单
}
in.putExtra(MenuSelectView.Type, MenuSelectView.Export); a.startActivityForResult(in, ToExport);
(3)上传
这个上传是相对于电饭煲来讲的,是电饭煲里的菜单上传到手机内存中。 public void upload() {
init();//定义一个集合,用来装载菜单list=new ArrayList
clearList();//是list列表为空
byte[] buffer = DataProtocolService.getAA();
//通过命令从电饭煲中获取菜单
WifiConnectService.mConncetInterface.writeAgreement(buffer); //等待反应获取数据
d = AlertDialogService.getWait
(context,context.getString(R.string.uploading));
d.show();
26
失败
}
closeDialogThread();//5秒的等待时间,不成功就关闭,并发送upload
(4)下载
该功能也是针对电饭煲的,是从菜谱选择菜单下传到电饭煲中,定时执行。 public void download() {
//跳转到MenuSelectActivity,选择菜单传给电饭煲 Intent in=new Intent(a, MenuSelectActivity.class);
in.putExtra(MenuSelectView.Type, MenuSelectView.Download); a.startActivityForResult(in, ToMenuSelect);//跳转过去成功有返回标志
}
5.3.2 菜谱实现界面
图4.5 菜谱界面图
5.4 setting自定义模块设计
5.4.1 保温快捷按钮
在setting自定义界面下,提供一个keep warm的快捷按钮,以方便用户的操作。当用户点击该按钮时,客户端会发送保温命令,电饭煲立即启动保温功能。实现代码如下:
// 保温命令:0xA1 public void toKwCommand() {
// DataProtocolService封装了所有的命令, byte[] buffer = DataProtocolService.getA1(); //通过命令让电饭煲执行保温命令
WifiConnectService.mConncetInterface.writeAgreement(buffer); }
27
5.4.2 wifi状态显示
在setting自定义界面下有wifi状态的显示,这是通过检索系统状态实现的。 private boolean wifiIsLink;
//wifi连接的状态保存在wifiIsLink,在SharedPreferences文件里 public void wifiIsLink(boolean b) {
}
if (b) {
//wifi的图标变亮
wifi_imageView.setImageResource(R.drawable.wifi_on);
} else {
//wifi的图表变暗 }
wifi_imageView.setImageResource(R.drawable.wifi_off);
5.4.3 自定义菜单
自定义菜单部分菜单参数保存在MenuBin,可直接发送给电饭煲定时执行。
//系统菜单不列入本地数据库
private int id;//系统菜单id
private String onlyId;//所有菜单唯一标志 private String model;// 型号
private int number;// 功能编号,0x0e为自定义,其他为系统设定 private String image;// 照片路径 private String name;// 菜单名称 private int pressure;// 压力 private int temp=100;// 温度 private int time=60;// 时间 单位分钟 private int type;// 菜单类型
28
private String help;// 菜单制作提示 private int kw;// 是否保温
private int isUpload;//是否为上传菜单
//点击confirm时,系统菜单将发送给电饭煲定时执行 public void confirm() {
mb=v.getMenu();
byte[] buffer=DataProtocolService.getA0(mb);
WifiConnectService.mConncetInterface.writeAgreement(buffer);
}
v.finish();
5.4.4 自定义模块界面
图4.6 setting自定义模块界面图
29