@author 逸筱幻
今天写了一个安卓的天气的app。虽然这种技术已经很老了。但是还是碰到了许多的问题。
网上很多人都直接调用百度或者谷歌的天气的api.利用地理位置可以直接获得天气。
但是我这边使用的是中国天气网的数据。 (http://www.weather.com.cn/data/cityinfo/101010100.html)使用地名获取数据。
其中最关键的问题涉及到数据库。
我想实现的功能是让用户可以进行本地搜索。在输入框输入一个地名。点击搜索按钮之后,
然后返回搜索结果。
地名的有关所有的数据是从中国天气网获得的。获得后我将这个文件解析后存入数据库。
然后将这个数据库文件存入res/raw文件夹下
public static String createDatabaseFileIfNotExist(Context context,String fileName){
//先在res下新建raw目录存放数据库文件 本例采用dbtest.db
File dir = context.getFilesDir();
File myfile = new File(dir.getAbsoluteFile()+"/"+fileName);
if(!myfile.exists()){
InputStream is = context.getResources().openRawResource(R.raw.dbtest);
FileOutputStream os;
try {
os = context.openFileOutput(fileName,Context.MODE_PRIVATE);
byte[] buffer = new byte[1024];
int count = 0;
// 将静态数据库文件拷贝到目的地
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count);
}
is.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//返回数据库文件的路径
return myfile.getAbsolutePath();
}这样就可以获取数据库文件的路径。然后通过openDatabase函数打开了。