【Android】实验7 BindService模拟通信 截止提交日期2016.5.3
实验7 BindService模拟通信
【目的】
实现启动端和BindService之间的双向通信
【要求】
1) 实现从启动端传递一个数据至BindService端;
2) 实现使用BindService服务播放项目源文件中的音乐;
3) 实现在启动端通过“增加”和“降低”两个按钮控制音频音量大小。
4) 实现在启动端通过“暂停”按钮控制音频暂停播放。
【原理】
- 参考教案,理解BindService和启动端的通信原理
- AudioManager的理解
AudioManager类位于android.Media 包中,该类提供访问控制音量和铃声模式的操作。
通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。
AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
audiomanager就是我们定义的控制系统声音的对象。
几个比较常用到的方法:
1) adjustVolume(int direction, int flags):用来控制手机音量大小,当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。
2) adjustStreamVolume(intstreamType, int direction, intflags):(以步长)调节手机音量大小
参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)
参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
参数3:可选的标志位
3) setStreamVolume(intstreamType, int index, intflags):直接设置音量大小
4) getStreamVolume(intstreamType):取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。
5) setStreamMute(intstreamType, boolean state):设置静音
部分参考代码:
//音量控制,初始化定义
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
以一步步长控制音量的增减,并弹出系统默认音量控制条:
//降低音量,调出系统音量控制
if(flag ==0){
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,
AudioManager.FX_FOCUS_NAVIGATION_UP);
}
//增加音量,调出系统音量控制
elseif(flag ==1){
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,
AudioManager.FX_FOCUS_NAVIGATION_UP);
}
其他常用方法:
android audioManager获取音量:
先获取AudioManager实例,
AudioManagermAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//通话音量
int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL );
int current = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL );
//系统音量
int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM );
current = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM );
//铃声音量
max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING);
current = mAudioManager.getStreamVolume(AudioManager.STREAM_RING );
//音乐音量
max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC );
current = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC );
//提示声音音量
max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM );
current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM );
//最大音量
intmaxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//当前音量
intcurrentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//直接控制音量的多少:
|
if(isSilent){ mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0); }else{ mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,tempVolume,0);//tempVolume:音量绝对值 } |
实验报告要求
1) 详细写出自己所做实验的步骤和内容;
2) 详细记录实验过程中发现的问题以及解决问题的方法;
3) 给出程序运行过程中各个页面的截图;
4) 提交文件包括:实验报告、源代码、可运行的安装程序,所有文件打包压缩;
5) 压缩包命名格式:专业+学号+姓名+实验7.rar
【Android】实验7 BindService模拟通信 截止提交日期2016.5.3的更多相关文章
- 实验7 BindService模拟通信
实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016.4.16 实验项目名称 BindService模拟通信 实验地点 S30010 实验类型 □验证型 √设计型 ...
- Android开发之bindService()侦听service内部状态
在Android开发之bindService()通信的基础上,实现bindService()方法侦听service内部状态. 实现侦听service内部状态,使用的是回调机制 1.首先实现一个接口 p ...
- Android实验报告
实验名称:Android程序设计 实验时间:2017.5.24 实验人员:20162309邢天岳(结对同学20162313苑洪铭) 实验目的:使用android stuidio开发工具进行基本安卓软件 ...
- 【Android】实验3 颜色、字符串资源的使用【提交截止时间:2016.4.1】
实验4 颜色.字符串资源的使用 [目的] 掌握Android中颜色和字符串资源的使用方法. 理解Android中尺寸和布局资源的使用方法. [要求] 在工程中为Activity.View使用颜色资源: ...
- 【Android】实验6 在应用程序中播放音频和视频 截止提交报告时间2016.4.21
注:也可以在数独游戏项目中完成该实验的内容.
- Android开发UI之EditText+DatePicker带日期选择器的编辑框
1. 声明EditText变量,并关联到相应控件上 private EditText sellStartTime; private EditText sellEndTime; sellStartTim ...
- Android实验一(在Android Studio中创建项目和模拟器)
北京电子科技学院(BESTI) 实 验 报 告 课程:移动平台开发 班级:1592 姓名:苏泽楠 学号:20159207 成绩: 指导教师 ...
- 不一样的Android选择器,简单方便,地址日期时间都好用!
前言 Android开发有不少情况下会用到Picker,例如选择 地址.日期.时间. 原生Picker和仿iOS的Picker都是上下或左右滑动到固定区域来选择选项: 显示数量少,如果当前选项距离需要 ...
- android 76 使用get post方式提交数据
get方式: package com.itheima.getmethod; import java.io.InputStream; import java.net.HttpURLConnection; ...
随机推荐
- python模块之正则
re模块 可以读懂你写的正则表达式 根据你写的表达式去执行任务 用re去操作正则 正则表达式 使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容.在线测试网站:http:/ ...
- 3、SpringBoot------邮件发送(1)
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/Springboot/tree/8878e8e89ce01ceb967ef8c1193ac740a6 ...
- BZOJ3669: [Noi2014]魔法森林(瓶颈生成树 LCT)
Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 3558 Solved: 2283[Submit][Status][Discuss] Descript ...
- Win10下安装zookeeper
Win10下安装zookeeper 注册中心zookeeper的安装 0.去Apache官网下载zookeeper http://zookeeper.apache.org/ 2.找到解压路径的conf ...
- 爬虫学习(十九)——Scrapy的学习及其使用
Scrapy框架的介绍 Scrapy,非常的强悍,通过python语言编写的,非常知名的爬虫框架 框架工作流程 框架流程图 基本工作流程; 1.引擎向spiders要url 2.引擎将要爬取的url给 ...
- dts--framework(三)
tester.py class Tester(Crb) 00. __init__(self, crb, serializer) 01.init_ext_gen(self) 02.set_re_run( ...
- Git 基本命令与服务器搭建
Git教程 一套视频 详细教程 完全命令手册 Git常用命令 git config:配置相关信息 git clone:复制仓库 git init:初始化仓库 git add:添加更新内容到索引中 gi ...
- POJ3682 概率DP
King Arthur's Birthday Celebration Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3575 ...
- 笔记-scrapy-cookie
笔记-scrapy-cookie传递 1. scrapy cookie传递 1.1. 开始 与cookie相关的设置参数有两个: COOKIES_ENABLED 决定是否使用cooki ...
- PHP.23-ThinkPHP框架的三种模型实例化-(D()方法与M()方法的区别)
三种模型实例化 原则上:每个数据表应对应一个模型类(Home/Model/GoodsModel.class.php --> 表tp_goods) 1.直接实例化 和实例化其他类库一样实例化模型类 ...