版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、移动应用开发试题及答案 移动应用开发试题 题目 : 1,请实现点击按钮拨打电话功能; 20 分 2,请实现点击按钮转变文本控件颜色的功能; 30 分 3,请实现使用 socket 通信的服务器端代码; 50 分 要求 : 规律结构完整 , 答案要点突出 , 论述充分 , 每题答案字数不少于 她资料 , 不得相互抄袭; 400 字;答案不得完全照抄书本或其 第 1 页,共 23 页移动应用开发试题及答案 中南高校网络训练课程考试 移动应用开发 答卷 本人承诺 : 本试卷确为本人独立完成 , 如有违反愿意接受处理; 签名 : 学号 : 题号 一 专业 : 三 总分 学习中心 : 二 评阅人签字 成
2、果 1. 答 : private Button btn2; btn2=ButtonfindViewByIdR , id , btn2;/ 在 xml 中把 button2 改成 btn2, 为该按钮的 id btn2 , setOnClickListenernew OnClickListener; 在 OnClick Intent in2 = new Intent; in2 , setActionIntent , ACTION_CALL;/ 指定意图动作 in2 , setDataUri , parsetel:1836380000;/ 指定电话号码 startActivityin2; 在 an
3、droid 系统中 , 全部系统请求 , 必需要在 androidmainfest ,xml 中注册 在 application 上面 import android import android import android import android import android import android import android import android import android import android import android , app, Activity; , app, AlertDialog; , app, Dialog; , content ,Dial
4、ogInterface; , content ,Intent; , view , LayoutInflater; , view , Menu; , view , View; , view , View, OnClickListener; , widget , Button; , widget , EditText; public class MainActivity extends Activity private Button btn; private Button btn2; private EditText et; private EditText et2; Override prote
5、cted void onCreateBundle savedInstanceState 第 2 页,共 23 页移动应用开发试题及答案 super , onCreatesavedInstanceState; setContentViewR , layout ,activity_main; et = EditTextfindViewByIdR , id , editText1; et2 = EditTextfindViewByIdR , id , editText2; btn2 = ButtonfindViewByIdR, id , btn2; btn = ButtonfindViewByIdR
6、 , id ,button1; btn , setOnClickListenernew OnClickListener Override public void onClickView arg0 / TODO Auto-generated method stub final String str = et , getText ,toString , trim; final String str2 = et2 ,getText , toString , trim; if str , equalsstr2 Intent in = new IntentMainActivity ,this,SecAc
7、tivity , class; startActivityin; else System, out , println.; ; btn2 , setOnClickListenernew OnClickListener Override public void onClickView arg0 / TODO Auto-generated method stub Intent in2 = new Intent; in2 , setActionIntent , ACTION_CALL; in2 , setDataUri ,parsetel:; startActivityin2; ; Override
8、 public boolean onCreateOptionsMenuMenu menu / Inflate the menu; this adds items to the action bar if it is present , getMenuInflater , inflateR , menu, main, menu; return true; androidmainfest , xml: uses-permission android:name=android android:name=com , example , qq, MainActivity android:label=st
9、ring/app_name action android:name=android category android:name=android ,intent ,category , LAUNCHER / android:name=com , example , qq, SecActivity android:label=string/title_activity_sec 1. Android Layout 文件 Layout 文件 , 用来显现一个拨打电话的按钮; 1. 2. 6. 7. Button android:id =+id/buttonCall 8. 9. android:layo
10、ut_width =wrap_content 第 4 页,共 23 页移动应用开发试题及答案 10. android:layout_height =wrap_cont ent 11. android:text =call / 12. Activity 使用以下代码 ,Android 拨打电话 : 1. Intent callIntent = newIntent Intent ,ACTION_CAL;L 2. callIntent , setData Uri ,parse tel: ; 3. startActivity call Intent ; 文件:MainActivity ,java 当点
11、击拨打电话按钮时 , 就会拨打 这个号码; 1. package net ,cublog , android ; 2. import android ,app, Activity ; 3. import android,content ,Context ; 4. import android,content ,Intent ; 5. import android,net , Uri ; 6. import android,os,Bundle; 7. import android,telephony , PhoneStateListener ; 8. import android ,teleph
12、ony , TelephonyManager; 9. import android ,util ,Log; 10. import android , view, View; 11. import android, view, View, OnClickListener ; 12. import android , widget ,Button ; 13. public class MainActivity extends Activity 14. private Button button ; 15. 16. Override17. public void onCreate Bundle sa
13、vedInstanceState 18. 第 5 页,共 23 页移动应用开发试题及答案 19. super , onCreate savedInstanceState ; 20. setContentView R, layout , main; 21. 22. button = Button findViewById R, id , buttonCall ; 23. 24. / add button listener new 25. button ,setOnClickListener OnClickListener 26. 27. Override28. public void onCli
14、ck View arg0 29. 30. Intent ca callIntent = newIntent Intent ,ACTION_CAL;L31. callIntent , setData Uri ,parse tel: ; startActivity 32. llIntent ; 33. 34. 35. 36. ; 37. 38. 39. 40. 41. Android Manifest 拨打电话 ,Android 在 AndroidManifest 需要 CALL_PHON的E 权 限; ,xml 中添加以下代码 : 第 6 页,共 23 页移动应用开发试题及答案 添加后 : 1.
15、 1. 2. 6. 7. 8. 11. 14. 15. 16. 17. 18. 19. 20. PhoneStateListener 例子 第 7 页,共 23 页移动应用开发试题及答案 更新上面的 Activity, 模拟拨打电话的状态 , 当电话拨打终止后 , 返回原始 Activity, 实际上 只就是重启了这个 activity ; 1. package net ,cublog , android ; 2. import android ,app, Activity ; 3. import android,content ,Context ; 4. import android,con
16、tent ,Intent ; 5. import android,net , Uri ; 6. import android,os,Bundle; 7. import android,telephony , PhoneStateListener ; 8. import android ,telephony , TelephonyManager; 9. import android ,util ,Log; 10. import android , view, View; 11. import android, view, View, OnClickListener ; 12. import an
17、droid , widget ,Button ; 13. public class MainActivity extends Activity 14. private Button button ; 15. 16. Override17. public void onCreate Bundle savedInstanceState 18. 19. super , onCreate savedInstanceState ; 20. setContentView R, layout , main; 21. 22. button = Button findViewById R, id , butto
18、nCall ; 23. 24. / add PhoneStateListener 25. PhoneCallListener phoneListener = newPhoneCallListener ; 26. TelephonyManager telephonyManager = TelephonyManager this 27. , getSystemService Context ,TELEPHONY_SERVI;CE 第 8 页,共 23 页移动应用开发试题及答案 28. telephonyManager , , listen phoneListener , PhoneStateLis
19、tener LISTEN_CALL_STAT;E 29. 30. 31. / add button listener new 32. button ,setOnClickListener OnClickListener 33. 34. Override35. public void onClick View arg0 36. 37. Intent ca callIntent = newIntent Intent ,ACTION_CAL;L38. callIntent , setData Uri ,parse tel: ; startActivity 39. llIntent ; 40. 41.
20、 42. 43. ; 44. 45. 46. 47. /monitor phone call activities 48. private class PhoneCallListener extends PhoneStateListener 49. 50. private boolean isPhoneCalling = false ; 51. 52. String LOG_TAG= LOGGING 123; 53. 第 9 页,共 23 页移动应用开发试题及答案 54. Override 55. public void onCallStateChanged int 56. state , S
21、tring incomingNumber 57. if TelephonyManager, CALL_STATE_RINGIN=G= state 58. / phone ringing59. Log, i LOG_TA,G RINGING, number: + incomingNumber ; 60. 61. 62. if TelephonyManager, CALL_STATE_OFFHO=O=Kstate 63. / active 64. Log, i LOG_TA,G OFFHOOK; 65. 66. isPhoneCalling = true ; 67. 68. 69. if Tele
22、phonyManager, CALL_STATE_IDLE= state / run when class 70. initial and phone call ended, 71. / need detect flag from CALL_STATE_OFFHOOK 72. Log, i LOG_TA,G IDLE ; 73. 74. if isPhoneCalling 75. 第 10 页,共 23 页移动应用开发试题及答案 76. ; Log, i LOG_TA,G restart app 77. 78. / restart app 79. Intent i = getBaseConte
23、xt ,getPackageManager 80. ,getLaunchIntentForPackage 81. getBaseContext ,getPackageName; 82. i , addFlags Intent ,FLAG_ACTIVITY_CLEAR_T;OP 83. startAct ivity i ; 84. 85. = false ; isPhoneC alling 86. 87. 由于 PhoneStateListener AndroidManifest88. ,xml 中添 89. 90. 91. 需要 READ_PHONE_STA权T限 E , 需要在 加以下代码
24、: 1. E 添加后 AndroidManifest ,xml 如下 : 1. 2. 5. android:versionName =1 ,0 6. uses-sdk android:minSdkVersion 7. 8. E 9. 12. 15. 16. 17. 18. 19. 20. 21. 1, 答:MainActivity , java import android import android import android import android import android ,app,Activity; ,content ,Intent; ,net ,Uri; ,os, Bu
25、ndle; ,view ,Menu; 第 12 页,共 23 页移动应用开发试题及答案 import android ,view ,View; import android ,view ,View,OnClickListener; import android,widget , Button; import android ,widget , TextView; public class MainActivity extends Activity private Button mCallButton; Override protected void onCreateBundle savedIn
26、stanceState super ,onCreatesavedInstanceState; setContentViewR ,layout , activity_main; mCallButton = Button findViewByIdR ,id ,btn_call; mCallButton ,setOnClickListenernew OnClickListener Override public void onClickView v / TODO Auto-generated method stub / 打给联通客服 10010 Intent intent = new IntentI
27、ntent , ACTION_CALL,Ur,parsetel:10010; startActivityintent; ; / Override / public boolean onCreateOptionsMenuMenu menu / / Inflate the menu; this adds items to the action bar if it is present , / getMenuInflater ,inflateR ,menu,main, menu; / return true; / / / public void clickHandlerView source , i
28、d ,show; / TextView tv = TextView findViewByIdR / tv ,setText 您好!现在时间 : + new java ,util ,Date; / 第 13 页,共 23 页移动应用开发试题及答案 activity_main ,xml: AndroidManifest , xml: 第 14 页,共 23 页移动应用开发试题及答案 uses-permission android:name=android android:name=com ,xiami , caipiao ,MainActivity android:label=string/app
29、_name action android:name=android category android:name=android 2, ,intent , action ,MAIN / , intent ,category , LAUNCHER / 答 : 打开表单模板 :%FR_HOME%WebReportWEB-INFreportletsdemoanalyticsmulti_reportall ,frm ; 选中总体概况按钮 , 在右侧的属性表中添加点击大事; 具体的 js 代码如下 : ifwindow , oldtd .= null window , oldtd , removeAttr
30、style; var td; if$e , target , isbutton td=$e , target , parent ,parent; else td=$e , target , findbutton , parent , parent; td , cssbackground-image:url,background-color:rgb170, 223, 248; window , oldtd=td; 3, 答 : 服务器端 author version1 , 002022/8/2 / importjava , net , ServerSocket; 第 15 页,共 23 页移动应
31、用开发试题及答案 importjava , net , Socket; importjava , io , IOException; importjava , io, BufferedReader; importjava , io, InputStreamReader; importjava , io , PrintWriter; publicclassServerSocketTest privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServerSocke
32、tTesttry ss=newServerSocket10000;/ 建立服务器 , 监听, System, out , printlnServerislisteningat10000 , ; whiletrue socket=ss , accept; / 猎取客户端 IP 地址 StringremoteIP=socket , getInetAddress ,getHostAddress; / 猎取客户端连接端口 StringremotePort=:+socket , getLocalPort; System, out , printlnAclinetcomein.IP:+remoteIP+r
33、emotePort; / 读取客户端输入 in=newBufferedReadernewInputStreamReadersocket Stringline=in , readLine; System, out , printlnClientsendis:+line; / 将服务器端信息发往客户端 ,getInputStream; out=newPrintWritersocket , getOutputStream,true; out , printlnYourMessageReceived.; out , close; in , close; socket , close; catchIOE
34、xceptionex System, out , printlnex ,getCause; publicstaticvoidmainStringargs newServerSocketTest; 3,答: 开发环境为 eclipse, 第一 , 新建两个一般的 Java 工程 , 一个命名为 server_1, 作为服务端 ; 另一个命 名为 client_1, 作为客户端; 完成的功能就就是在客户端的把握台输入内容后 , 客户端将内容发送至服务端 , 在服务端的把握台可以瞧到输入的内容 , 当输入的内容为 shutdown 时 , 服务端与客户端都关闭通信 , 通信结 第 16 页,共 23
35、 页移动应用开发试题及答案 束; 服务端代码 : package server_1;import java import java import java import java import java import java , io, BufferedReader; , io , IOException; , io , InputStreamReader; , io , PrintWriter; , net ,ServerSocket; , net ,Socket; public class server_1 public static void mainString args throw
36、s IOException / 将反常全部抛出 ServerSocket server = new ServerSocket10000; / 用 serversocket 来启动服务器 , 并指 定端口号 System , out , println 服务器启动; ; 猎取客户端的 socket 信息 Socket socket = server , accept; / BufferedReader in = null; in = new BufferedReadernew InputStreamReadersocket , getInputStream; / 启动 缓冲区 while tru
37、e String msg = in, readLine; / 将客户端发送来的信息储备在 msgSystem , out , printlnmsg; 中 if msg , equalsshutdown / 客户端假如发送的就是 shutdown, 就关闭客户 端 break; in , close; / 执行相应的关闭操作 考虑这就是一个入门级的程序 , 所以暂时不考虑各种反常情形; 端口号尽量取大于 1024 建立 seversocket, 并且指定服务器的端口号为 10000, 此时服务器端开头运行; 的数字 , 小于 1024 的一般都就是系统程序占用 然后利用 socket 实现与客户
38、端的连接; in 就是一个输入缓冲区 , 客户端发送来的信息就暂时储备在这个缓冲区中; 然后用 while 语句 , 循环的监听客户端发送过来的数据 , 当就是一般信息时 , 就讲客户端发来的内同打印到 把握台 , 假如就是“ shutdown”, 就关闭服务器端 , 此次通信终止; 3, 答 : 开发环境 Vs 2022 新建一个 win32 console project / 服务器端代码 / Server , cpp : Defines the entry point for the console application , / #include stdafx ,h #include
39、winsock2 , h 第 17 页,共 23 页移动应用开发试题及答案 #pragma commentlib, ws2_32 , lib #include using namespace std; int _tmainint argc, char* argv const int BUF_SIZE = 64; WSADATA SOCKET SOCKET SOCKADDR_IN char char int wsd; /WSADATA 变量 sServer;/ 服务器套接字 sClient;/ 客户端套接字 addrServ; / 服务器地址 bufBUF_SIZE; / 接收数据缓冲区 sen
40、dBufBUF_SIZE;/ 返回给客户端得数据 retVal; / 返回值 / 初始化套结字动态库 if WSAStartupMAKEWORD2,2, &wsd .= 0 cout WSAStartup failed. endl; return 1; / 创建套接字 sServer = socketAF_INET, SOCK_STREAM, IPPROTO_TCP; ifINVALID_SOCKET = sServer cout socket failed. endl; WSACleanup;/ 释放套接字资源 ; return -1; / 服务器套接字地址 addrServ , sin_f
41、amily = AF_INET; addrServ , sin_port = htons4999; addrServ , sin_addr , s_addr = INADDR_ANY; / 绑定套接字 retVal = bindsServer, LPSOCKADDR&addrServ, sizeofSOCKADDR_IN; ifSOCKET_ERROR = retVal cout bind failed. endl; closesocketsServer; / 关闭套接字 ; WSACleanup;/ 释放套接字资源 return -1; / 开头监听 retVal = listensServ
42、er, 1; ifSOCKET_ERROR = retVal 第 18 页,共 23 页移动应用开发试题及答案 cout listen failed. endl; closesocketsServer; / 关闭套接字 WSACleanup; / 释放套接字资源 ; return -1; / 接受客户端请求 sockaddr_in addrClient; int addrClientlen = sizeofaddrClient; sClient = acceptsServer,sockaddr FAR*&addrClient, &addrClientlen; ifINVALID_SOCKET
43、= sClient cout accept failed. endl; closesocketsServer; / 关闭套接字 WSACleanup; / 释放套接字资源 ; return -1; whiletrue / 接收客户端数据 ZeroMemorybuf, BUF_SIZE; retVal = recvsClient, buf, BUF_SIZE, 0; if SOCKET_ERROR = retVal cout recv failed. endl; closesocketsServer; / 关闭套接字 ; closesocketsClient;/ 关闭套接字 WSACleanup;/ 释放套接字资源 return -1; ifbuf0 = 0 break; cout 客户端发送的数据 : buf endl; cout sendBuf; sendsClient, sen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度呈现合集【人力资源管理篇】
- 2024年厂年度劳动竞赛的工作总结
- 《广告的社会功能》课件
- 第1单元 中华人民共和国的成立与巩固 (B卷·能力提升练)(解析版)
- 《孟子生平简介》课件
- 《杜绝校园欺凌》课件
- 超市客服话务员工作总结
- 探索生态之谜
- 2023年项目安全培训考试题(能力提升)
- 2023年项目部治理人员安全培训考试题附完整答案(必刷)
- 检修工(题库)附答案
- 2025届高考语文一轮复习:小说情节结构之伏笔 练习题(含答案)
- 《化学实验室安全》课程教学大纲
- 2024年人教版初二地理上册期末考试卷(附答案)
- 《一元一次方程》复习学案
- 三甲医院面试自我介绍课件
- 单招铁路基础知识题库单选题100道及答案解析
- 高低压供配电设备检查和检修保养合同3篇
- 投资可行性分析财务数据全套表格
- 2023-2024学年福建省厦门市八年级(上)期末物理试卷
- 易查云全球智能贸易信息查询平台商业计划书
评论
0/150
提交评论