移动应用开发试题及复习资料Word下载.docx
《移动应用开发试题及复习资料Word下载.docx》由会员分享,可在线阅读,更多相关《移动应用开发试题及复习资料Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
③btn2.setOnClickListener(newOnClickListener(){});
④在OnClick()
Intentin2=newIntent();
in2.setAction(Intent.ACTION_CALL);
//指定意图动作
in2.setData(Uri.parse("
tel:
1836380000"
));
//指定电话号码
startActivity(in2);
⑤在android系统中,所有系统请求,必须要在androidmainfest.xml中注册
在<
application上面
<
uses-permissionandroid:
name="
android.permission.CALL_PHONE"
/>
MainActivity.java:
packagecom.example.qq;
import.Uri;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.Dialog;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.view.LayoutInflater;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
publicclassMainActivityextendsActivity{
privateButtonbtn;
privateButtonbtn2;
privateEditTextet;
privateEditTextet2;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
btn2=(Button)findViewById(R.id.btn2);
btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewarg0){
//TODOAuto-generatedmethodstub
finalStringstr=et.getText().toString().trim();
finalStringstr2=et2.getText().toString().trim();
if(str.equals(str2))
{
Intentin=newIntent(MainActivity.this,SecActivity.class);
startActivity(in);
}
else
System.out.println("
!
"
);
}});
btn2.setOnClickListener(newOnClickListener(){
Intentin2=newIntent();
in2.setAction(Intent.ACTION_CALL);
in2.setData(Uri.parse("
startActivity(in2);
}
publicbooleanonCreateOptionsMenu(Menumenu){
//Inflatethemenu;
thisaddsitemstotheactionbarifitispresent.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
androidmainfest.xml:
?
xmlversion="
1.0"
encoding="
utf-8"
>
manifestxmlns:
android="
package="
com.example.qq"
android:
versionCode="
1"
versionName="
>
<
uses-sdk
minSdkVersion="
17"
targetSdkVersion="
/>
application
allowBackup="
true"
icon="
@drawable/ic_launcher"
label="
@string/app_name"
theme="
@style/AppTheme"
activity
com.example.qq.MainActivity"
intent-filter>
actionandroid:
android.intent.action.MAIN"
categoryandroid:
android.intent.category.LAUNCHER"
/intent-filter>
/activity>
com.example.qq.SecActivity"
@string/title_activity_sec"
/application>
/manifest>
①AndroidLayout文件
Layout文件,用来呈现一个拨打电话的按钮。
1.<
encoding="
2.<
LinearLayoutxmlns:
3.
android:
layout_width="
fill_parent"
4.
layout_height="
5.
orientation="
vertical"
6.
7.
8.
Button
9.
id="
@+id/buttonCall"
10.
wrap_content"
11.
12.
text="
call"
13.
14.<
/LinearLayout>
②Activity
使用以下代码,Android拨打电话:
1.IntentcallIntent=newIntent(Intent.ACTION_CALL);
2.
callIntent.setData(Uri.parse("
startActivity(callIntent);
文件:
MainActivity.java当点击拨打电话按钮时,就会拨打这个号码。
1.packagenet.cublog.android;
2.
3.importandroid.app.Activity;
4.importandroid.content.Context;
5.importandroid.content.Intent;
6.import.Uri;
7.importandroid.os.Bundle;
8.importandroid.telephony.PhoneStateListener;
9.importandroid.telephony.TelephonyManager;
10.importandroid.util.Log;
11.importandroid.view.View;
12.importandroid.view.View.OnClickListener;
13.importandroid.widget.Button;
14.
15.publicclassMainActivityextendsActivity{
16.
privateButtonbutton;
17.
18.
@Override
19.
publicvoidonCreate(BundlesavedInstanceState){
20.
21.
super.onCreate(savedInstanceState);
22.
setContentView(R.layout.main);
23.
24.
button=(Button)findViewById(R.id.buttonCall);
25.
26.
//addbuttonlistener
27.
button.setOnClickListener(newOnClickListener(){
28.
29.
30.
publicvoidonClick(Viewarg0){
31.
32.
IntentcallIntent=newIntent(Intent.ACTION_CALL);
33.
34.
35.
36.
37.
38.
});
39.
40.
41.
42.
43.}
③AndroidManifest
拨打电话,Android需要CALL_PHONE的权限。
在AndroidManifest.xml中添加以下代码:
添加后:
package="
net.cublog.android"
uses-sdkandroid:
7"
9.
13.
14.
.MainActivity"
15.
18.
23.
24.<
④PhoneStateListener例子
更新上面的Activity,模拟拨打电话的状态,当电话拨打结束后,返回原始Activity,实际上只是重启了这个activity。
//addPhoneStateListener
PhoneCallListenerphoneListener=newPhoneCallListener();
TelephonyManagertelephonyManager=(TelephonyManager)this
.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
43.
44.
45.
46.
47.
48.
49.
//monitorphonecallactivities
50.
privateclassPhoneCallListenerextendsPhoneStateListener{
51.
52.
privatebooleanisPhoneCalling=false;
53.
54.
StringLOG_TAG="
LOGGING123"
;
55.
56.
57.
publicvoidonCallStateChanged(intstate,StringincomingNumber){
58.
59.
if(TelephonyManager.CALL_STATE_RINGING==state){
60.
//phoneringing
61.
Log.i(LOG_TAG,"
RINGING,number:
"
+incomingNumber);
62.
63.
64.
if(TelephonyManager.CALL_STATE_OFFHOOK==state){
65.
//active
66.
OFFHOOK"
67.
68.
isPhoneCalling=true;
69.
70.
71.
if(TelephonyManager.CALL_STATE_IDLE==state){
72.
//runwhenclassinitialandphonecallended,
73.
//needdetectflagfromCALL_STATE_OFFHOOK
74.
IDLE"
75.
76.
if(isPhoneCalling){
77.
78.
restartapp"
79.
80.
//restartapp
81.
Intenti=getBaseContext().getPackageManager()
82.
.getLaunchIntentForPackage(
83.
getBaseContext().getPackageName());
84.
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
85.
startActivity(i);
86.
87.
isPhoneCalling=false;
88.
89.
90.
91.
92.
93.}
由于PhoneStateListener需要READ_PHONE_STATE权限,需要在AndroidManifest.xml中添加以下代码:
android.permission.READ_PHONE_STATE"
添加后AndroidManifest.xml如下: