Android实验12Service应用和BroadcastReceiver组件答案.docx

上传人:b****8 文档编号:9583800 上传时间:2023-02-05 格式:DOCX 页数:18 大小:111.25KB
下载 相关 举报
Android实验12Service应用和BroadcastReceiver组件答案.docx_第1页
第1页 / 共18页
Android实验12Service应用和BroadcastReceiver组件答案.docx_第2页
第2页 / 共18页
Android实验12Service应用和BroadcastReceiver组件答案.docx_第3页
第3页 / 共18页
Android实验12Service应用和BroadcastReceiver组件答案.docx_第4页
第4页 / 共18页
Android实验12Service应用和BroadcastReceiver组件答案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Android实验12Service应用和BroadcastReceiver组件答案.docx

《Android实验12Service应用和BroadcastReceiver组件答案.docx》由会员分享,可在线阅读,更多相关《Android实验12Service应用和BroadcastReceiver组件答案.docx(18页珍藏版)》请在冰豆网上搜索。

Android实验12Service应用和BroadcastReceiver组件答案.docx

Android实验12Service应用和BroadcastReceiver组件答案

一、实验名称:

实验12Service应用和BroadcastReceiver组件

二、实验日期:

2016-05-020

三、实验目的:

1、掌握Service的应用案例。

2、了解BroadcastReceiver组件的用法。

3、掌握发送普通广播和有序广播的过程。

四、实验用的仪器和材料:

windows+eclipse+jdk+sdk+adt

五、实验的步骤和方法:

1、音频播放的应用,参考代码及音频文件见附件,补全代码。

Week12_01Activity

packagecom.week12.lab01;

importandroid.app.Activity;

importandroid.app.Service;

importandroid.media.AudioManager;

importandroid.media.MediaPlayer;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.CompoundButton;

importandroid.widget.ToggleButton;

importandroid.widget.CompoundButton.OnCheckedChangeListener;

publicclassWeek12_01ActivityextendsActivity{

Buttonplay,up,down;

ToggleButtonmute;

AudioManageraManager;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//获取系统的音频服务

aManager=(AudioManager)getSystemService(Service.AUDIO_SERVICE);

//获取界面中3个按钮和一个ToggleButton控件

play=(Button)findViewById(R.id.play);

up=(Button)findViewById(R.id.up);

down=(Button)findViewById(R.id.down);

mute=(ToggleButton)findViewById(R.id.mute);

//为play按钮的单击事件绑定监听器

play.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewsource){

//初始化MediaPlayer对象,准备播放音乐

MediaPlayermPlayer=MediaPlayer.create(Week12_01Activity.this,R.raw.guang);

//设置循环播放

mPlayer.setLooping(true);

//开始播放

mPlayer.start();

}

});

up.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewsource){

//指定调节音乐的音频,增大音量,而且显示音量图形示意

aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_RAISE,AudioManager.FLAG_SHOW_UI);

}

});

down.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewsource){

//指定调节音乐的音频,降低音量,而且显示音量图形示意

aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_RAISE,AudioManager.FLAG_SHOW_UI);

}

});

mute.setOnCheckedChangeListener(newOnCheckedChangeListener(){

publicvoidonCheckedChanged(CompoundButtonsource,

booleanisChecked){

//指定调节音乐的音频,根据isChecked确定是否需要静音

aManager.setStreamMute(AudioManager.STREAM_MUSIC,isChecked);

}

});

}

}

main.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

orientation="vertical">

android:

id="@+id/play"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

text="@string/play"/>

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

gravity="left"

android:

orientation="vertical">

android:

id="@+id/up"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

text="@string/up"/>

android:

id="@+id/down"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

text="@string/down"/>

android:

id="@+id/mute"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

textOff="@string/mute"

android:

textOn="@string/normal"/>

Strings.xml

xmlversion="1.0"encoding="utf-8"?

>

音频管理

音频播放音乐

增大音量

降低音量

静音

正常

 

2、闹钟设置实例。

补充并完成程序,分析其运行的原理。

main.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

orientation="vertical">

android:

id="@+id/setTime"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

text="@string/setTime"/>

Strings.xml

xmlversion="1.0"encoding="utf-8"?

>

设置闹铃

闹铃测试

Week12_02Activity.java

packagecom.week12.lab02;

importandroid.app.Activity;

importandroid.app.AlertDialog;

importandroid.content.DialogInterface;

importandroid.content.DialogInterface.OnClickListener;

importandroid.media.MediaPlayer;

importandroid.os.Bundle;

publicclassWeek12_02ActivityextendsActivity{

MediaPlayeralarmMusic;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//加载指定音乐,并为之创建MediaPlayer对象

alarmMusic=MediaPlayer.create(this,R.raw.alarm);

alarmMusic.setLooping(true);

//播放音乐

alarmMusic.start();

//创建一个对话框

newAlertDialog.Builder(Week12_02Activity.this).setTitle("闹钟")

.setMessage("闹钟响了,Go!

Go!

Go!

")

.setPositiveButton("确定",newOnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhich){

//停止音乐

alarmMusic.stop();

//结束该Activity

Week12_02Activity.this.finish();

}

}).show();

}

}

AlarmTest.java

packagecom.week12.lab02;

importjava.util.Calendar;

importandroid.app.Activity;

importandroid.app.AlarmManager;

importandroid.app.PendingIntent;

importandroid.app.Service;

importandroid.app.TimePickerDialog;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.TimePicker;

importandroid.widget.Toast;

publicclassAlarmTestextendsActivity{

ButtonsetTime;

AlarmManageraManager;

CalendarcurrentTime=Calendar.getInstance();

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//获取程序界面的按钮

setTime=(Button)findViewById(R.id.setTime);

//获取AlarmManager对象

aManager=(AlarmManager)getSystemService(Service.ALARM_SERVICE);

//为“设置闹铃”按钮绑定监听器。

setTime.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewsource){

CalendarcurrentTime=Calendar.getInstance();

//创建一个TimePickerDialog实例,并把它显示出来。

newTimePickerDialog(AlarmTest.this,0,//绑定监听器

newTimePickerDialog.OnTimeSetListener(){

publicvoidonTimeSet(TimePickertp,inthourOfDay,

intminute){

//指定启动AlarmActivity组件

Intentintent=newIntent(AlarmTest.this,

Week12_02Activity.class);

//创建PendingIntent对象

PendingIntentpi=PendingIntent.getActivity(

AlarmTest.this,0,intent,0);

Calendarc=Calendar.getInstance();

c.setTimeInMillis(System.currentTimeMillis());

//根据用户选择时间来设置Calendar对象

c.set(Calendar.HOUR,hourOfDay);

c.set(Calendar.MINUTE,minute);

//设置AlarmManager将在Calendar对应的时间启动指定组件

aManager.set(AlarmManager.RTC_WAKEUP,

c.getTimeInMillis(),pi);

//显示闹铃设置成功的提示信息

Toast.makeText(AlarmTest.this,"闹铃设置成功啦",5000)

.show();

}

},currentTime.get(Calendar.HOUR_OF_DAY),currentTime

.get(Calendar.MINUTE),false).show();

}

});

}

}

3、发送有序广播的应用。

main.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

orientation="vertical">

android:

id="@+id/send"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

text="@string/send"

/>

Strings.xml

xmlversion="1.0"encoding="utf-8"?

>

HelloWorld,BroadcastMain!

有序广播测试

发送有序广播

 

Week12_03Activity.java

packagecom.week12.lab03;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

publicclassWeek12_03ActivityextendsActivity{

Buttonsend;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//获取程序中的send按钮

send=(Button)findViewById(R.id.send);

send.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){

//创建Intent对象

Intentintent=newIntent();

intent.setAction("com.sise.action.JHY_BROADCAST");

intent.putExtra("msg","简单的消息");

//发送有序广播

sendOrderedBroadcast(intent,null);

}

});

}

}

MyReceiver.java

packagecom.week12.lab03;

importandroid.content.BroadcastReceiver;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.Gravity;

importandroid.widget.Toast;

publicclassMyReceiverextendsBroadcastReceiver{

@Override

publicvoidonReceive(Contextcontext,Intentintent){

Toasttoast=Toast.makeText(context,

"有序广播1:

接收到的Intent的Action为:

"+intent.getAction()+"\n消息内容是:

"

+intent.getStringExtra("msg"),3000);

toast.setGravity(Gravity.TOP,0,200);

toast.show();

//创建一个Bundle对象,并存入数据

Bundlebundle=newBundle();

bundle.putString("first","这是第一个广播存入的消息。

");

//将bundle放入结果中

setResultExtras(bundle);

//取消Broadcast的继续传播

//abortBroadcast();

}

}

packagecom.week12.lab03;

importandroid.content.BroadcastReceiver;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.Gravity;

importandroid.widget.Toast;

MyReceiver2.java

publicclassMyReceiver2extendsBroadcastReceiver{

@Override

publicvoidonReceive

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1