ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:1.11MB ,
资源ID:4305869      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4305869.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(安卓应用闹钟课程设计.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

安卓应用闹钟课程设计.doc

1、沈阳理工大学课程设计专用纸 摘 要随着智能手机的迅速发展,它一步步走进了普通人的生活,成为人们获取即时信息的主要设备。因此,手机的应用软件将会有非常大的发展空间,其中闹钟是人们日常生活中必不可少的应用软件。Android平台也提供给用户方便、快捷的服务。另外,Android平台基本都是免费的,这让软件开发缩小了成本,也吸引更多人投入Android的软件开发,使Android的平台更加具有竞争性,也能使每个用户能够获得更好的体验与服务。本文讲述了国内外安卓手机系统及应用的研究概况,对其发展趋势做了分析,同时介绍了Android的相关技术和应用程序结构。进而研究分析了Android平台的系统构架和

2、组件模型,接着解析了Android中重要的API和应用构成,以及Intent和生命周期的机制。在简要讲述了Android的开发环境的搭建过程后,对位置闹钟设计的相关技术(Android系统和GPS技术)进行了分析和概括,在此基础上,进行位置闹钟的设计与实现,本系统界面舒服,操作简便,具有良好的可扩展性;系统经过测试,可以稳定运行,能够满足手机用户的基本需求。关键字:安卓,闹钟,智能手机平台沈阳理工大学课程设计专用纸 目 录一、开发工具与环境11.1 JAVA集成开发环境eclipse11.2 Activity概述11.3 Android的相关技术介绍21.3.1 Android的组成结构21.

3、3.2应用程序架构31.3.3 Dalvik虚拟机器31.3.4集成的浏览器31.3.5优化的绘图能力31.3.6 SQLite数据库31.3.7多媒体的支持能力4二、系统分析与设计52.1 Android权限的获取52.2 Android用户界面构建52.3 资源的获取和使用6三、系统详细设计83.1 系统功能模块设计83.2 系统界面详细设计83.2.1功能导航模块设计83.2.2设置闹铃时间模块设计103.2.3闹铃列表模块设计133.2.4闹钟铃音模块设计153.2.5开始闹铃模块设计16四、结论19参考文献20NO.19沈阳理工大学课程设计专用纸 一、开发工具与环境1.1 JAVA集

4、成开发环境eclipseEclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)1。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与

5、 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所2。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C+、COBOL、PHP等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础。1.2 Activity概述Activity是最常用的。每个Activity都是Activity的子类,并实现了

6、一些独有的功能,如管理UI显示和UI的反馈事件。一个Activity就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个Activity。显示一个新界面就相当于生成一个对应的Activity对象。在一些情况下,Activity能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的Activity可以返回给它的调用者用户选择了哪个照片文件5。当一个新的Activity出现时,前一个Activity被中断并被放入

7、到一个历史堆栈中。用户可以使用返回键使前一个Activity重现。当一个Activity不再需要时,可以将它们从历史堆栈中移除。默认情况下,Android会为每个应用程序保留从主界面开始的历史堆栈。Android通过一个被称作Intent的特殊类,来实现界面与界面之间的跳转。一个Intent描述了一个应用程序想要做什么。在Intent的描述结构中,含有两个重要的数据结构:动作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动作对应的数据则以URI的形式表示。例如:显示一个联系人信息的界面,可以创建一个Intent,并将它的动作设置成VIEW,数据设置成表示这个

8、人信息的URI7。如图1.1所示图1.1 Android的构成和工作流程1.3 Android的相关技术介绍本章介绍了Android的功能特性和Android架构,同时讲述了Android应用程序构成和工作机制。1.3.1 Android的组成结构Android主要由程序应用架构、集成的浏览器、Dalvik虚拟机、SQLite数据库、优化的绘图能力、多媒体的支持能力、GSM技术、蓝牙,EDGE和3G及Wi-Fi以及GPS等九个框架组成。1.3.2应用程序架构在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。1.3.3

9、Dalvik虚拟机器在Android平台上所使用的Java虚拟机,不是Sim公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高9。1.3.4集成的浏览器集成的浏览器是Android内建的浏览器,是以Webkit的浏览引擎为基础所开发成的。Wedkit是一个开源浏览器网页排版引擎,目前使用Webkit引擎的浏览器主要有:Safari,Midori,Epiphany等。配合Android手机的功能,可以在浏览网页时,达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效

10、果2。1.3.5优化的绘图能力在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,Android提供了一套特有的类库(SGL;而在3D方面则是使用OpenGLES1.0(openGL for Embedded systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。1.3.6 SQLite数据库SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品使用了它,它占用的资源非常低。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如php,Java等,还有ODBC接

11、口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小,虽只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用4。1.3.7多媒体的支持能力 主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”(Note: URI即是统一资源识别地址)模式,即在网络上

12、直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF等格式8。二、系统分析与设计 在Android平台下开发位置闹钟软件采用的关键技术包括Android权限的获取问题、用户界面构架问题、资源的获取和使用问题。2.1 Android权限的获取Android安全中的一个重要的设计点是在默认情况下应用程序没有权限执行对其它应用程序、操作系统或用户的有害操作。这些操作包括读/写用户的隐私数据(例如联系方式或(e-mail),执行网络访问,保持设备Activity,等等。应用程序的进程是一个安全的黑盒子,它不能干扰其它应用程序,除非给它声明权限,现对权限的命名和获取问题做下说明

13、6。(1)权限命名一个基本的Android应用程序没有与其相关联的权限,意味着它不能做任何影响用户体验或设备中数据的有害操作。在应用程序需要时,可在AndroidManifest.xml文件中列举一个或更多的标签来声明此权限。(2)在AndroidManifest.xml文件中支持权限通过AndroidManifest.xml文件可以设置高级权限,用来限制访问组件或应用程序。所以如果要访问某组件,需要在这个文件里声明一个权限,现对跟本系统有关的组件权限做以下说明。Activity权限(使用标签)限制能够启动与Activity权限相关联的组件或应用程序。此权限在Context.startActi

14、vity()和Activity.startActivityForResult期间要经过检查;如果调用者没有请求权限,那么会为调用抛出一个安全异常。BroadcastReceiver权限(使用标签)限制能够为相关联的接收器发送广播的组件或应用程序。在Context.sendBroadcast()期间,此权限将被检查,同时系统设法将广播递送至相关接收器。因此,权限失败将会导致抛回给调用者一个异常10。2.2 Android用户界面构建在Android平台下开发应用软件,最重要的是布局问题。一个好看而又简洁的界面,是相当重要的,既能提高使用者的体验,又保证应用的高效执行。Android生成用户界面有

15、三种方式:xml配置生成、通过用户自己的界面接口生成和直接用代码生成。对于一个Activity应用来说,android.app.Activity类是一个最基本的功能单元。一个Activity实例可以做很多的事情,但是它本身无法显示在屏幕上,而是借助于View group和View,这两个是Android平台上最基本的两个用户界面表达单元。下面介绍下主要的布局对象:线性布局(Linear Layout):以单一方向对其中的显示对象进行排列显示。如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行。同时,还可以对个别的显示对象设置显示比例2。表格布局(Table

16、Layout):以拥有任意行列的表格对显示对象进行布局,每个显示对象被分配到各自的单元格之中,但单元格的边框线不可见。绝对布局(Absolute Layout):允许以坐标的方式,指定显示对象的具体位置,左上角的坐标为(0,0),向下及向右,坐标值变大。这种布局管理器由于对象的位置固定了,所以在不同的设备上,有可能会出现不一样的显示效果。相对布局(Relative Layout):允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局。一个按钮可以放于另一个按钮的右边,或者可以放在布局管理器的中央。对于Android应用中的一个屏幕,它的屏幕元素是按层次结构来描述的。要将一个屏幕元素

17、层次树绑定在一个屏幕上显示,Activity会调用它的setContentView()方法并且传入这个层次树的根节点引用2。2.3 资源的获取和使用资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML、PNG以及JPEG文件。它们在运行的时候被解析,XML文件根据描述不同有不同的格式。源代码以及XML文件将资源打包并编译进二进制文件,这种模式能使得资源更快的被加载。字符串也同样被压缩成更高效的模式。由于这些原因,Android平台上可以有不同的资源类型。Android资源系统能跟踪所有非代码相关的应用程序。程序开发者可以使用资源

18、类来访问应用程序的资源,资源的实例通常和应用程序联系在一起,可以通过Context.getResources来访问。应用程序的资源在编译时就被编译到应用程序二进制代码里3。为了使用某个资源,程序开发者需要将它放在对应的代码目录结构里,然后编译。作为编译过程的一部分,产生的资源代号可以在源代码里使用,这就可以用编译器来验证程序代码和定义的资源是否相符。 Android的闹钟系统提供了警报和时间设置方面支持,其实现的硬件基础通常是实时时钟设备。在Linux内核代码中,需要有实时时钟设备驱动程序和Android的Alarm驱动程序。警报器-实时时钟系统包含了JNI和JAVA层的接口,在JAVA应用程

19、序层可以通过接口控制警报器方面的功能。如图2.1所示图2.1 Android闹钟应用结构图三、系统详细设计本章主要阐述了手机闹钟软件的功能模块的设计和界面设计。3.1 系统功能模块设计 系统旨在建立Android系统的闹钟,主要有如下几个核心功能模块如图3.1所示。主程序关闭闹铃执行操作模块闹铃再响时长选择模块闹铃设置模块功能导航模块主页面,显示当系统时间图3.1 系统功能模块图3.2 系统界面详细设计3.2.1功能导航模块设计 程序的主页面,设置闹钟的入口;显示系统的当前时间和日期以及相关的系统信息,点击闹钟的图标,即可进入设置闹钟信息的页面。如图3.2所示图3.2 功能导航界面图主要代码:

20、private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() Override public void onReceive(Context context, Intent intent) if (mLive & intent.getAction().equals( Intent.ACTION_TIMEZONE_CHANGED) mCalendar = Calendar.getInstance(); / Post a runnable to avoid blocking the broadcast. mHand

21、ler.post(new Runnable() public void run() updateTime(); ); ; static class AmPm private TextView mAmPm; private String mAmString, mPmString; AmPm(View parent) mAmPm = (TextView) parent.findViewById(R.id.am_pm); String ampm = new DateFormatSymbols().getAmPmStrings(); mAmString = ampm0; mPmString = amp

22、m1; void setShowAmPm(boolean show) mAmPm.setVisibility(show ? View.VISIBLE : View.GONE); void setIsMorning(boolean isMorning) mAmPm.setText(isMorning ? mAmString : mPmString); 3.2.2 设置闹铃时间模块设计此模块设为一个面板,点击数字进行设置闹铃时间,程序中以数组的形式表示,当按下其中某一数字时,表示选择数组中的一个值,将此值保存。还可以选择一个星期中的闹铃开启的天数。如图3.3所示图3.3 设置闹铃时间界面图主要代码

23、:public void bindView(View view, Context context, Cursor cursor) final Alarm alarm = new Alarm(cursor); View indicator = view.findViewById(R.id.indicator); / Set the initial resource for the bar image. final ImageView barOnOff = (ImageView) indicator.findViewById(R.id.bar_onoff); barOnOff.setImageRe

24、source(alarm.enabled ? R.drawable.ic_indicator_on : R.drawable.ic_indicator_off); / Set the initial state of the clock checkbox final CheckBox clockOnOff =(CheckBox) indicator.findViewById(R.id.clock_onoff); clockOnOff.setChecked(alarm.enabled); /新增 this.context=context; / Clicking outside the check

25、box should also change the state. indicator.setOnClickListener(new OnClickListener() public void onClick(View v) myDialog = ProgressDialog.show(AlarmTimeAdapter.this.context,提示,请稍候,true);new Thread() public void run() try sleep(800);catch (Exception e)e.printStackTrace();finally/ 卸载所创建的myDialog对象。my

26、Dialog.dismiss();.start(); try Thread.sleep(500); catch (InterruptedException e) e.printStackTrace(); clockOnOff.toggle(); updateIndicatorAndAlarm(clockOnOff.isChecked(),barOnOff, alarm); );3.2.3 闹铃列表模块设计在这个页面显示所有的设置过的闹钟信息,点击闹钟图标可以开启或者关闭闹钟,点击时间可以设置闹钟和选择闹钟要开启的天数。如图3.4、图3.5所示。图3.4 闹钟列表界面图图3.5 闹钟详细信息界面

27、主要代码:public class AnalogAppWidgetProvider extends BroadcastReceiver static final String TAG = AnalogAppWidgetProvider; public void onReceive(Context context, Intent intent) String action = intent.getAction(); if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action) RemoteViews views = new RemoteV

28、iews(context.getPackageName(), R.layout.analog_appwidget); views.setOnClickPendingIntent(R.id.analog_appwidget, PendingIntent.getActivity(context, 0, new Intent(context, AlarmClock.class), PendingIntent.FLAG_CANCEL_CURRENT); int appWidgetIds = intent.getIntArrayExtra( AppWidgetManager.EXTRA_APPWIDGE

29、T_IDS); AppWidgetManager gm = AppWidgetManager.getInstance(context); gm.updateAppWidget(appWidgetIds, views); 3.2.4 闹钟铃音模块设计此模块主要的功能是选择闹钟的铃音,铃音的来源是系统中的Mp3格式的文件,凡是此格式的文件都可以作为闹钟的铃音。如图3.6所示图3.6 闹钟铃音选择图主要代码:public class DigitalClock extends LinearLayout private final static String M12 = h:mm; private Ca

30、lendar mCalendar; private String mFormat; private TextView mTimeDisplay; private AmPm mAmPm; private ContentObserver mFormatChangeObserver; private boolean mLive = true; private boolean mAttached; /* called by system on minute ticks */ private final Handler mHandler = new Handler(); private final Br

31、oadcastReceiver mIntentReceiver = new BroadcastReceiver() Override public void onReceive(Context context, Intent intent) if (mLive & intent.getAction().equals( Intent.ACTION_TIMEZONE_CHANGED) mCalendar = Calendar.getInstance(); / Post a runnable to avoid blocking the broadcast. mHandler.post(new Run

32、nable() public void run() updateTime(); ); ;3.2.5 开始闹铃模块设计针对当前人们起床难的问题,在关闭闹铃模块,需要答对一道算术题才可以关闭闹铃,这样就可以达到闹铃的目的,让闹铃的发挥更好的作用。点击暂停再响,五分钟后会再次开启闹钟,点击取消,则是关闭闹钟。如图3.7所示图3.7 开始闹铃界面图主要代码:public class AnalogAppWidgetProvider extends BroadcastReceiver static final String TAG = AnalogAppWidgetProvider; public voi

33、d onReceive(Context context, Intent intent) String action = intent.getAction(); if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action) RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.analog_appwidget); views.setOnClickPendingIntent(R.id.analog_appwidget, PendingIntent.get

34、Activity(context, 0, new Intent(context, AlarmClock.class), PendingIntent.FLAG_CANCEL_CURRENT); int appWidgetIds = intent.getIntArrayExtra( AppWidgetManager.EXTRA_APPWIDGET_IDS); AppWidgetManager gm = AppWidgetManager.getInstance(context); gm.updateAppWidget(appWidgetIds, views); 四、结论经过累计两个星期的努力,基于A

35、ndroid平台的位置闹钟软件终于完成了。由于对Android浓厚的兴趣引发了我对JAVA的好奇心,毕竟Android是基于JAVA的,虽然这个软件的开发没有达到老师的期望值,但是在老师和同学的帮助下,我还是慢慢摸索完成了这个软件。在这个过程中,我学会了很多知识,比如Android环境的搭建和配置问题、Android的构架和基本组建等等,同时我学会的最重要的一点是,要利用现有的资源去解决问题,在图书馆、在网络上寻找答案,也可以请教老师或与同学相互讨论。 虽然,这个软件目前运行良好,但是我认为代码的健壮还很差,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。与此同

36、时,这个软件还可以进一步扩展,例如“同时设置多个闹钟”、“信息分享”、“应用推荐”等,使功能更加强大,带给大家更好的体验与便捷的生活服务。 参考文献1 景保玉编著2010中国移动应用开发现状与趋势大调查北京人民邮电出版社20112 粟菊民编著挑战Java程序员系列丛书:Java Web应用设计北京机械工业出版社20123 胡伟编著 Android系统架构及其驱动研究J广州广州广播电视大学学报20084 王向辉 张国印 沈洁编著Android应用程序开发北京清华大学出版社20105 靳岩 姚上郎编著Google Android开发入门与实战北京人民邮电出版社20126 余志龙 陈昱勋 郑名杰编著Android SDK开发范例大全M. 北京:人民邮电出版社20107 张运芳编著Android 创赢路线与产品开发实战M北京电子工业出版社20108 郑建 贺超编著Android和Chrome的发展北京人民日报出版社20109 安卓在线:1051CTO博客之星:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服