zoukankan      html  css  js  c++  java
  • 实验七 BindService模拟通信

    实验报告

    课程名称

    基于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调节音量大小、设置静音。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               

     

     

     

  • 相关阅读:
    ruby html解析器
    国外cdn
    ruby爬虫utf8编码相关
    Ruby 1.9 regex (named capture group)正则名组
    ruby爬虫综述
    ruby新加实例方法写法
    机房
    Net::HTTP Cheat Sheet
    ror一键安装包forwin
    病毒6655.la
  • 原文地址:https://www.cnblogs.com/family6/p/5424074.html
Copyright © 2011-2022 走看看