基于安卓的智能电饭煲 - 优秀论文 下载本文

的通信协议息息相关。

(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