多功能通讯录APP源码和设计报告

多功能通讯录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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值