1. 实现将数据保存到自己手机,并且可以读出来显示
2.将数据通过邮件的方式发送到自己的邮
3.对界面的布局进行控制
1.单独写成一个 serviece 类,方便当做工作包调用
package com.service;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
/**
* 对应的是 MVC的 Model层
* @author Administrator
*
*/
public class FileService {
private Context context;
public FileService(Context context){
this.context=context;
}
/**
* 保存sd卡内容
* @param filename
* @param content
* @throws Exception
*/
public void saveToSDCard(String filename,String content)throws Exception {
File file=new File("/sdcard",filename);//建立文件路径
FileOutputStream outStream=new FileOutputStream(file);//输出流
outStream.write(content.getBytes());//把 内容 转化成 字节流
outStream.close();//关闭管道
//这个默认在/data/data 下
}
/**
* 私有文件保存内容
* @param filename
* @param content
* @throws Exception
*/
public void save(String filename,String content)throws Exception {
FileOutputStream outStream=this.context.openFileOutput(filename, Context.MODE_PRIVATE);//输出流
outStream.write(content.getBytes());//把 内容 转化成 字节流
outStream.close();//关闭管道
//这个默认在/data/data 下
}
/**
* 追加文件保存内容
* @param filename
* @param content
* @throws Exception
*/
public void saveappend(String filename,String content)throws Exception {
FileOutputStream outStream=this.context.openFileOutput(filename, Context.MODE_APPEND);//输出流
outStream.write(content.getBytes());//把 内容 转化成 字节流
outStream.close();//关闭管道
}
/**
* 文件允许其他文件读取
* @param filename
* @param content
* @throws Exception
*/
public void saveOtherReadable(String filename,String content)throws Exception {
FileOutputStream outStream=this.context.openFileOutput(filename, Context.MODE_WORLD_READABLE);//输出流
outStream.write(content.getBytes());//把 内容 转化成 字节流
outStream.close();//关闭管道
}
/*
* 读取文件
*/
public String read (String filname) throws Exception{
FileInputStream inStream =this.context.openFileInput(filname);//输入流
ByteArrayOutputStream bostream=new ByteArrayOutputStream(); //这一部分输出到 内存
byte[] buffer=new byte[1024];
int len=0;
// FinputStream.read() Returns the number of bytes actually read or -1 if no bytes were read
while((len=inStream.read(buffer))!=-1){
/*
* 输入流读到缓冲区,当缓冲 被len 代表 填到缓冲的 哪个位置, 当 是-1时 代表这一次 没放东西,那么就不需要将缓冲的数据保存到 内存去
*/
//len 代表放了多少字节长度 , 如果放了-1 代表 没放东西
bostream.write(buffer,0,len); //将这个写到内存
}
byte [] Data =bostream.toByteArray();//得到输出流的字节数据
inStream.close();
bostream.close();
return new String(Data);
}
}
2.发送到自己邮箱 的代码,其实 android 已经提供
/* 发送邮件的地址 */
Uri uri = Uri.parse("mailto:seawater86@126.com");
/* 创建Intent */
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
/* 设置邮件的主题 */
it .putExtra(android.content.Intent.EXTRA_SUBJECT, "第 "+j+" 次数据备份");
/* 设置邮件的内容 */
it .putExtra(android.content.Intent.EXTRA_TEXT, content);
/* 开启 */
startActivity(it);
ConnetSchoolActivity.this.finish();
3.对界面的控制主要是因为 前两天写都是注重在功能上实现,今天 ,发现结果显示的界面,所有的数据都在底下了,十分不美,虽然这不是产品,但是一样难受
考虑用相对布局,将 所有的控制按钮 都放在最底下,将结果显示在当中,以达到视觉上的最大化,看着也舒服了许多
接下来要考虑解决的问题
1.数据的保存不应该以简单的 String 形式来保存,这样不方便解析,回去考虑用 JSON来处理
2.明天,对学校的每个相应点,进行半径数据的 检测
3.看今天下的一些文档,关于和服务器通讯的