测试某穿戴运动APP安卓端--遇到的问题

本文讨论了手表与手机闹钟的同步问题,包括因频繁操作导致的误删和凌晨闹钟bug,以及消息提醒功能在不同设备上的表现和修复计划。S8Ultra和Watch9的电话接听问题也进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、闹钟

功能描述:通过蓝牙绑定手表后,手表软件中的闹钟与手机端的手表闹钟(本地闹钟)保持同步,手表闹钟的开关、时间等信息也会同步到手机端(本地闹钟),手机端(本地闹钟)的也会同步手表闹钟。

bug:

手机端与手表端同时频繁开关闹钟,会出现误删闹钟或者添加一个凌晨0点闹钟(异端并发)

修改:

二、 消息提醒

功能描述:分为来电提醒、短信提醒、消息提醒(QQ、微信、邮件、推特等)。权限打开后手机与手表都会收到提示信息。

bug:

1、界面开关已经显示开启但手表端消息提醒未响应。

2、S8 ULtar表:可以接收短信和微信信息,电话收不到    Ultar2:可以接收短信和微信信息,但中文字符以“_”表示(识别不了正确中文字符),电话收不到  Watch9:都不行。

修改:

1、由于权限由原来:重置APP开头获取权限,变为:用到某一功能再获取相应权限,所以导致bug出现,-->增加权限提示。

2、设计如此,无法修改,想要正常使用需手动将蓝牙连接到对应手表的音频蓝牙。

三、导入手机联系人数据进APP(默认100条) 

测试点:如何构造100条测试手机联系人数据 是否正常导入。

构造数据联系人数据,再将数据转化为手机可导入格式:

1、Excel表格构造100条简单数据,类似如下;将后缀xlsx或者xls改为csv:

2、运用以下代码将csv文件转化为vcf(手机可导入格式):

 这个代码忘了从哪里找的了-----

"""
@title:通讯录vcf与csv互转
@filename:vcf22csv_gui_ok.py
"""
import os
import quopri
import re
import tkinter as tk
import tkinter.filedialog as tk_file
import tkinter.messagebox as msg


def get_fpath_fname_fextension(file):
    """返回文件路径、文件名、拓展名"""
    (fpath, temp_fname) = os.path.split(file)
    (fname, fextension) = os.path.splitext(temp_fname)
    return fpath, fname, fextension


def vcf2csv(vcf_filename):
    """vcf格式文件转换为csv格式文件"""
    # 1.读取vcf文件
    with open(vcf_filename, 'r', encoding='utf-8') as f:
        try:
            ftext = f.read()
        finally:
            f.close()
    # 2.正则替换清洗数据
    re_dic = {
        r"(EMAIL;)(.*)(\n)": "",
        r"(ADR;)(.*)(\n)": "",
        r"(ORG;)(.*)(\n)": "",
        r"(NOTE:)(.*)(\n)": "",
        r"(\n)(VERSION:2.1)": "",
        r"\nEND:VCARD\nBEGIN:VCARD": "",
        r"\nEND:VCARD": "",
        r"BEGIN:VCARD\n": "",
        r"(;;;)([\s\S]*?)(TEL;CELL:)": ",",
        r"N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:": "",
        r"(\nTEL;)(.*?)(:)": ",",
        r"N:;": "",
        r";": "",
        r" ": "",
        r"=\n": ""
    }
    for re_rule, replace_str in re_dic.items():
        p1 = re.compile(re_rule)
        ftext = p1.sub(replace_str, ftext)
    # 3.解码quopri编码
    ftext = quopri.decodestring(ftext).decode('utf-8', "ignore").replace(" ", "")
    ftext = "".join([s for s in ftext.splitlines(True) if s.strip()])
    # 4.保存cvs文件
    csv_str = f'姓名,手机\n{ftext}'
    fname = get_fpath_fname_fextension(vcf_filename)
    with open(f'{fname[0]}/{fname[1]}.csv', "w", encoding="utf-8") as f:
        try:
            f.write(csv_str)
        finally:
            f.close()


def csv2vcf(csv_filename):
    """csv格式文件转换为vcf格式文件"""
    # 1.读取csv文件
    with open(csv_filename, 'r', encoding='utf-8') as f:
        ftext_list = f.readlines()
        f.close()
    # 2.将cvs转换为vcf格式
    vcards = ''
    for line in ftext_list[1:]:
        tel_numbers = ''
        name_tel_list = line.strip().split(',')
        if name_tel_list[0]:
            tel_name = name_tel_list[0]  # 姓名
            for tel in name_tel_list[1:]:  # 电话
                tel_numbers += f'TEL;CELL:{tel}\n'
            vcard = f'BEGIN:VCARD\nN:{tel_name}\n{tel_numbers}END:VCARD\n'
            vcards += vcard
    # 3.保存转换后的vcf格式文件
    fname = get_fpath_fname_fextension(csv_filename)
    with open(f'{fname[0]}/{fname[1]}.vcf', "w", encoding='utf-8') as f:
        try:
            f.write(vcards)
        finally:
            f.close()


def vcf22csv(file):
    if not os.path.isfile(file):
        msg.showerror(message="文件不存在!")
    else:
        a = get_fpath_fname_fextension(file)[2]
        if a == ".csv":
            csv2vcf(file)
            msg.showinfo(message="转换成功!此文件为csv文件,已生成vcf文件。")
        elif a == ".vcf":
            vcf2csv(file)
            msg.showinfo(message="转换成功!此文件为vcf文件,已生成csv文件。")
        else:
            msg.showwarning(message="请选择正确的csv文件或者vsf文件.")


if __name__ == "__main__":
    root = tk.Tk().withdraw()  # 创建tk窗口并隐藏
    filename = tk_file.askopenfilename(title='请选择vcf或csv文件',
                                       filetypes=[("vcf文件", "*.vcf"), ('csv文件', '*.csv')])
    vcf22csv(filename)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值