武汉理工大学华夏学院课程报告课程名称:智能手机软件开发题目:基于Android的手机通讯录的设计与实现专业信息工程系班级计算机1141学号10210414140姓名王新翔成绩______________指导教师苏永红2016年10月14日至2015年12月13日智能手机软件开发大作业根据所学的Android 手机开发的知识,采用Eclipse、JA V A开发一个基于Android 平台的手机通讯录软件,具体要求如下:1.要发该软件能够在Android4.4以上的平台上运行。
2.要求软件界面美观,操作方便,符合日常使用规范。
3.能够通过该手机通讯录来添加新的联系人,用来存放联系人的姓名、单位、电话、QQ、邮箱、地址等信息。
4.能够通过该手机通讯录来编辑联系人信息,来修改联系人的个人信息。
5.能够通过该手机通讯录来调用系统的通信接口,直接给用户发短信,打电话。
6.在手机通讯录中,添加合适的菜单,来操作手机通讯录。
7.将开发的过程写成报告,要求内容完整,格式规范,条理清晰。
1 设计目的通讯录作为手机最基本的功能之一,但是手机上成百上千的联系人信息杂乱无章的显示着,给用户造成了很多的不便,大大降低了通讯录的可使用性。
因此,需要设计一款辅助软件来管理通讯录,提高通讯录的使用效率以及使用户更加方便地识别联系人。
本次实验所设计与开发出的这款基于Android手机的通讯录,在保存联系人信息的基础上加入通讯录头像这样个性的功能,方便用户管理通讯录。
2 开发环境开发软件:Eclipse 、JDK2.0、Android SDK 、ADT开发环境:Windows7虚拟设备:Android A VD开发版本:Android 4.4………..3 需求分析[1]添加联系人:可以添加联系人的基本信息,如:姓名、电话、单位、住址等信息;[2]查看信息:查看某个联系人的具体信息;[3]查询联系人:根据输入的条件查询联系人;[4]修改联系人的信息;[5]数据备份与还原:可以将整个通讯录备份到SD卡上,以防止信息丢失、抑可将备份的数据还原到通讯录中;.4 概要设计开发流程图:即功能需求分析为功能需求分析图系统运行流程图:\5 数据库设计先创建数据库,在数据库中创建表来存储联系人数据。
6 详细设计与实现据提供者MyDBHelper 继承SQLiteOpenHelper ,是在应用程序间共享数据的一种接口机制。
应用程序在不同的进程中运行,因此,数据和文件在不同的应用程序之间是不能够直接进行访问的。
而MyDBHelper程序员提供了较高级的数据共享方法,应用程序可以指定需要共享的数据,而其他应用程序则可以在不知数据来源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作。
对应于数据库的操作,首先定义了各个值:public long insert(User user){ContentValues values=new ContentValues();values.put("name",ername);values.put("mobilephone",user.mobilePhone);values.put("officephone",user.officePhone);values.put("familyphone",user.familyPhone);values.put("address",user.address);values.put("othercontact",user.otherContact);values.put("email",user.email);values.put("position",user.position);values.put("company", pany);values.put("zipcode", user.zipCode);values.put("remark", user.remark);values.put("imageid",user.imageId);values.put("privacy", user.privacy);return dbInstance.insert(DB_TABLENAME, null, values); } 然后删除手机通讯录中的信息:public void delete(int_id){dbInstance.delete(DB_TABLENAME,"_id=?", newString[]{String.valueOf(_id)}); }public void deleteAll(int privacy){ dbInstance.delete(DB_TABLENAME,"privacy=?",newString[]{String.valueOf(privacy)});}将用户信息存储:private void saveDataToFile(String strData,boolean privacy) { }文件查找通过对数据库的查找来实现:public boolean findFile(String fileName) {String SDPATH = Environment.getExternalStorageDirectory() +"/";File file = null;if(fileName.endsWith(".bk")) {file = new File(SDPATH + "zpContact/"+fileName); }else {file = new File(SDPATH + "zpContact/"+fileName + ".bk"); } if(file.exists()) {return true;}else {return false; }}通过对数据库的详细描述,可得到数据库的建立,查找,删除,列表等操作的实现。
运行可得到所需:7 总结本次实验总的来说是成功的,不过在这次实验中我发现了我的很多不足。
比如说很多老师讲过的知识我不能融会贯通,导致我在试验中出现了很多问题不能解决。
但在同学和老师的帮助下我最终解决了这些问题,并且学到了很多以前没有学到和注意到的知识。
8 参考文献[1]姚尚朗Google Android 开发入门与实战[M]. 北京: 人民邮电出版社,2009:1-12[2]景宝玉.2010 中国移动应用开发现状与趋势大调查[M].北京:人民邮电出版社,2011:2-19[3](英) Herbert Schildt.java参考大全[M]. 北京:清华大学出版社,2008:9-119 附录源代码主界面:final DBService dbs=new DBService(this);c=dbs.queryAll();SimpleCursorAdapter sca=newSimpleCursorAdapter(this,yout.list,c,newString[]{"name","number"},new int[]{,R.id.number});ListView lv=getListView();lv.setAdapter(sca);添加联系人:ContactAdd_name=(EditText)findViewById(R.id.contactadd_name);ContactAdd_number=(EditText)findViewById(R.id.contactadd_number);save=(Button)findViewById(R.id.contactadd_save);cancel=(Button)findViewById(R.id.contactadd_cancel);save.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubContact contact=new Contact(ContactAdd_name.getText().toString(),ContactAdd_number.getText().toStri ng());DBService dbs=new DBService(ContactAddActivity.this);dbs.insert(contact);Intent intent=new Intent();intent.setClass(ContactAddActivity.this,CallDBActivity.class);startActivity(intent);}});cancel.setOnClickListener(new OnClickListener() {public void onClick(View arg0) {// TODO Auto-generated method stubIntent intent=new Intent();intent.setClass(ContactAddActivity.this,CallDBActivity.class);startActivity(intent);}});打电话:Uri uriCall=Uri.parse("tel:"+number);Intent intentCall=new Intent(Intent.ACTION_CALL,uriCall);startActivity(intentCall);发短信:Uri uriSms=Uri.parse("smsto:"+number);Intent intentSms=new Intent(Intent.ACTION_SENDTO,uriSms);startActivity(intentSms);编辑联系人:DBService dbs=new DBService(ContactEditActivity.this);dbs.update(id,editName.getText().toString(),editNumber.getText().toSt ring());Intent intent=new Intent();intent.setClass(ContactEditActivity.this,CallDBActivity.class);startActivity(intent);。