An android application that can scan qrcode calling cards and save it to the contacts list.It can also generate qrcode based on user's information.
名称:QrCard (二维码名片),一个可以制作个人二维码名片和扫描名片二维码的应用。 应用项目的构思: 二维码,是指特定的几何图形按照一定规律在二维方向上黑白相间的图形。与传统的一维码相比,二维码能储存更多的信息,并且可以做到很高的容错率,这使得二维码可以做的有艺术色彩并且还能准确的传达出自己存储的信息。将名片信息存储在二维码上市二维码比较常见的应用之一。目前,很多应用都可以将存储名片信息的二维码扫描解析,以便将名片存入通讯录中,含有该功能的应用有很多,其中就有qq的扫一扫,搜狗手机输入法等几乎是智能手机必备的应用。因此,对于用户来说,可能会有制作自己的名片二维码的需求,所以,此次实验我准备设计实验一个可以制作二维码名片和扫描名片二维码的应用。
软件的功能模块和结构: 应用分为制作二维码和扫描二维码两个主要的模块,在制作二维码的大模块里,有接受用户输入并存储用户信息的模块,制作二维码并存储二维码图片的模块;在扫描二维码的模块中,需要有扫描模块,解析扫描结果模块,存储扫描到的联系人的模块。 另外为了提高用户体验,还要有帮助用户入门的在程序第一次运行时显示的功能介绍模块,程序开始启动时启动画面的模块等。
实现各个功能模块所需的技术 扫描二维码和制作二维码的核心算法需要借助开源项目:zxing 。Zxing是一个用Java实现的支持多种平台,多种格式的1D/2D条码图像处理库,可以利用该项目实现二维码的编码和解码。 接受用户输入并存储用户信息的模块利用了安卓sharedPreferences的存储技术,方便对数据进行解析和处理。制作二维码时,用户信息利用vcard3.0格式进行编码,这样就能保证其他应用可以解析出二维码包含的名片信息,需要扫描用户二维码的人不需要安装本应用(需要其他具有扫描二维码功能的应用,如qq,微信)就可以获取用户的名片信息,并且把这些信息存入到通讯录中。存储二维码名片的过程中,涉及到了图像文件的读写技术,本应用将生成的用户名片二维码图片存储到/data/data/包名/file/文件夹中,需要存储的数据不会很大(100k左右),不会对用户的系统存储空间造成浪费,相比于存储到sd卡中这种存储方式,避免用户误操作和更换SD卡导致图丢失的情况。 在扫描二维码的过程中,调用zxing提供的CaptureActivity类,并对其进行修改,将扫描结果(一个vcard格式的字符串)利用sharedpreferences进行存储,这样方便对程序进行扩展(如果要扫描其它非名片格式的二维码则不需要再对CaptureActivity进行修改)。解析扫描结果的过程中,利用Java提供的正则表达式的pattern类,由于vcard3,0每行按回车符结尾,将整个字符串按行分开;另外,类型标记与数据之间以冒号进行结尾,再对分开的每个字符串根据冒号分成两个字符串,再根据标记匹配名片的各项信息。存储联系人的过程中,需要通过contentprovider和content Resolver对联系人数据库进行修改,达到增加联系人的目的。 对于启动画面,使用handler进行延迟启动,延迟时间设置为两秒,避免用户进行过长时间的等待。第一次运行的程序介绍的界面由ViewPagerAdapter类实现,WelcomeActivity在滑到最后一张图片时启动MainActivity,启动之后MainActivity写入配置信息,第二次运行时splashActivity判断配置信息使启动WelcomeActivity的条件为假,直接进入MainActivity。