标签:
课程名称 |
基于Android平台移动互联网开发 |
实验日期 |
2016年4月22日 |
||
实验项目名称 |
BindService模拟通信 |
实验地点 |
S30010 |
||
实验类型 |
□验证型 √设计型 □综合型 |
学 时 |
|
||
一、实验目的及要求(本实验所涉及并要求掌握的知识点) |
|||||
实现启动端和BindService之间的双向通信。 1)实现从启动端传递一个数据至BindService端; 2)实现使用BindService服务播放项目源文件中的音乐; 3)实现在启动端通过“增加”和“降低”两个按钮控制音频音量大小。 4)实现在启动端通过“暂停”按钮控制音频暂停播放。 |
|||||
二、实验环境(本实验所使用的硬件设备和相关软件) |
|||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT |
|||||
三、实验内容及步骤 |
|||||
1、在MusicSetting中利用绑定方式创建service 2、创建服务连接监听对象 3、创建一个继承于Service的类BindService.java并修改 4、创建动作监听 5、使用AudioManager初始化定义音量控制 6、用adjustStreamVolume方法实现音量大小调节,setStreamMute方法设置静音 |
|||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图) |
|||||
代码:MusicService类代码 public class MusicSetting extends Activity { private TextView tv2; private Button bindbtn; private Button getservicebtn; private Button strongbtn; private Button lowbtn; private CheckBox checkBox; private ServiceConnection connection; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.music_setting);
final AudioManager mAudioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE); //音量控制初始化定义
final Intent intent=new Intent(MusicSetting.this,BindService.class);
tv2=(TextView)findViewById(R.id.textView2);
//创建服务连接监听对象 connection =new ServiceConnection() { public void onServiceDisconnected(ComponentName arg0) { System.out.println("Service is disconnected "); }
public void onServiceConnected(ComponentName arg0, IBinder arg1) { System.out.println("Service connected "); //创建连接获取IBinder } };
strongbtn=(Button)findViewById(R.id.strongbtn); strongbtn.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); //增加音量,调出系统音量控制 mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE, AudioManager.FX_FOCUS_NAVIGATION_UP); //参数含义:声音类型,调整音量的方向,可选的标志位 tv2.setText("当前音量大小为:"+currentVolume); } });
lowbtn=(Button)findViewById(R.id.lowbtn); lowbtn.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER, AudioManager.FX_FOCUS_NAVIGATION_UP); //参数含义:声音类型,调整音量的方向,可选的标志位 int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); tv2.setText("当前音量大小为:"+currentVolume); } });
checkBox=(CheckBox)findViewById(R.id.checkBox1); checkBox.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC,true); } }); } } BindService类代码: public class BindService extends Service{ private int count; private MyBinder binder=new MyBinder(); public class MyBinder extends Binder{ // 创建一个继承于Service的类BindService,在BindService类中创建一个内部类 } public void Oncreate(){ super.onCreate(); System.out.println("Service is Created"); } public IBinder onBind(Intent arg0) { System.out.println("Service is Binded"); return binder; } } 运行结果:(截图)
单击menu菜单后显示: 单击“增大音量”后显示 单击减少音量显示: 勾选静音,再次单击“增大音量”显示:
|
|||||
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见) |
|||||
刚开始做实验时思路很不清晰,MainActivity类、MusicSetting类、BindService类、MusicService服务之间的关系很乱,不知道在哪里创建service,不知道怎样用绑定方法创建servic,不知道在哪里创建服务连接监听对象。有些构造函数的参数也不明白是什么意思,后来认真阅读实验步骤和教案,逐步实现用BindService调节音量大小、设置静音。 |
|||||
实验评语 |
|
||||
实验成绩 |
|
指导教师签名: 年 月 日 |
|||
标签:
原文地址:http://www.cnblogs.com/family6/p/5424074.html