多功能通讯录APP设计报告
课设项目要求:
这次课程设计是要开发一个具有基础的登录功能和好友列表显示功能的Android App,在结合前面的实验所实现的功能,实现了较为完整的app项目;设计实现Android界面数据的综合加载跳转及展示。设计实现了对数据库中数据的添加、编辑和删除。
项目构思:
根据项目要求,判断是要做一个仿聊天App或者仿通讯录App,后者可能不是那么泛滥,于是以制作一个通讯录App为目标,下面会进行具体的介绍。
本软件主要面向的是对网上通讯有需求的人群,让他们能够及时获取在线跨区域联系,不受时间和空间的限制。
后面同样会对已有的信息进行数据可视化的处理,使数据以一种更为生动的形式呈现出来,以此来实现App的稳定执行。
⭐️项目简介
本项目的研究目的是开发一款简易的Android手机通讯录APP,主要是模拟通讯录app的相基础关功能,功能类似于传统手机通讯录,主要能够实现个人资料编辑和扫码添加功能,通讯录查询和拨打电话以及发送短信功能,也可以查询通话记录、新建联系人并进行编辑等操作。使用的是android studio和java设计。
⭐️功能简介
包含以下功能:
电话短信
用户编辑扫码添加
添加通讯录好友
编辑好友信息
好友查询和记录查询
⭐️系统功能图
❥ 用户登录后个人资料设计、获取二维码并进行扫码添加,可以添加联系人,添加结束之后可以对联系人信 息进行修改和查询。
❥ 有了联系人之后,就可以进行发送短信和拨打电话操作。此后可以进行通话记录查询 ,实现了基础的通讯录好友联系功能。
⭐️数据库设计
序号 名称 类型 长度 是否主键 说明
1 Name varchar 10 No 中文姓名
2 Code varchar 10 No 二维码
3 Phone Integer‘ 12 Yes 电话
4 Address varchar 12 No 地址
5 Company varchar 12 No 公司
序号 名称 类型 长度 是否主键 说明
1 Name1 varchar 10 No 中文姓名
2 Name2 varchar 10 No 英文姓名
3 Phone Integer‘ 12 Yes 电话
4 Address varchar 12 No 地址
5 Company varchar 12 No 公司
⭐️执行过程
项目执行过程如下:
拟定项目方向
项目需求统计
项目需求调整
项目功能实现
⭐️主要页面代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.basic">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.util.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"/>
<service android:name="com.example.service.NotifyService"/>
</application>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest>
⭐️功能介绍(界面&描述&代码)
☀️用户个人功能(个人资料与扫码)
❥ 在编辑用户信息的时候,主要是姓名、 电话、住址和单位,并且额外设计了扫码添加功能。
☀️联系人录入功能
❥ 新建联系人信息的时候,联系人的主要信息有姓名、电话、住址和单位这些。查询的时候,我们能依据这些信息进行模糊查询。
☀️联系人信息编辑功能
❥ 新建联系人之后,能够对联系人信息重新编辑。在更改联系人信息的时候,联系人的主要信息有姓名、电话、住址和单位。
☀️联系人扩展功能(打电话&发短信&通讯记录)
❥ 新建联系人之后,能够对联系人信息重新编辑。此外还设有扩展功能: 打电话发送短信和通话记录查询功能。
❥ 部分代码
/* 打电话 */
public static void callPhone(Activity activity, String phone) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));
activity.startActivity(intent);
}
/* 发消息 */
public static void sendMessage(Activity activity, String tel, String content) {
if (PhoneNumberUtils.isGlobalPhoneNumber(tel)) {
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + tel));
intent.putExtra("sms_body", content);
activity.startActivity(intent);
}
}
☀️通讯录功能
❥ 相当于一个好友列表功能。
❥ 根据想要联系的人, 可以通过点击图标选择拨打电话或者发送短信联系,这里的界面都模拟了现实世界中正常的通讯界面(与上方通话&短信界面一致)。同时可以进行关键字查询,直接定位到某一位联系人。
☀️通话记录功能
❥ 这里可以看到相关的通话对象&号码以及具体通话的年月日及时间,同时可以进行关键字查询,搜索具体某次的通话记录。
❥ 相关代码
public class ContactCallRecordAdapater extends BaseAdapter<CallMess, ContactCallRecordAdapater.ContactCallRecordViewHodler> {
public ContactCallRecordAdapater(Context context) {
super(context);
} @Override
protected int onBindLayout() {
return R.layout.list_item_forrecord;
} @Override
protected ContactCallRecordAdapater.ContactCallRecordViewHodler onCreateHolder(View view) {
return new ContactCallRecordAdapater.ContactCallRecordViewHodler(view);
} @Override
protected void onBindData(ContactCallRecordAdapater.ContactCallRecordViewHodler holder, CallMess callMess, int positon) {
holder.recordDate.setText(LongToString(callMess.getCallDate()));
switch (callMess.getCallStatus()) {
case 1: holder.recordType.setText("呼入"); break;
case 2: holder.recordType.setText("呼出"); break;
case 3: holder.recordType.setText("未接"); break;
default: break;
}
}
static class ContactCallRecordViewHodler extends RecyclerView.ViewHolder {
private TextView recordDate;
private TextView recordType;
public ContactCallRecordViewHodler(@NonNull View itemView) {
super(itemView);
recordDate = itemView.findViewById(R.id.recordDate);
recordType = itemView.findViewById(R.id.recordType);
}
}
/* 长整型转时间函数 */
public static String LongToString(long time)
{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
return formatter.format(new Date(time));
}
}
⭐️项目不足之处
需求变更次数多
安全性有待提供
按钮单一
功能不够完善
项目规划不佳
特色不多
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_66999594/article/details/139610493