http://www.2cto.com/kf/201312/263642.html

step 1,在AndroidManifest文件中添加权限声明

<uses-permission android:name= "android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>

step 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package com.markjoker.sensortest;
import java.io.FileInputStream;
import java.io.IOException;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity implements SensorEventListener {
     private AudioManager audioManager;
     private SensorManager mSensorManager;
     private Sensor mSensor;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         init();
     }
     private void init() {
         audioManager = (AudioManager) this
                 .getSystemService(Context.AUDIO_SERVICE);
         mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
         mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
         
         MediaPlayer mPlayer = new MediaPlayer();
         try {
             mPlayer.reset();
             mPlayer.setDataSource( new FileInputStream( "/sdcard/snow.mp3" ).getFD());
             mPlayer.prepare();
             mPlayer.start();
         } catch (IllegalArgumentException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (IllegalStateException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
     @Override
     protected void onResume() {
         mSensorManager.registerListener( this , mSensor,
                 SensorManager.SENSOR_DELAY_NORMAL);
         super .onResume();
     }
     @Override
     protected void onPause() {
         // TODO Auto-generated method stub
         mSensorManager.unregisterListener( this );
         super .onPause();
     }
     @Override
     public void onSensorChanged(SensorEvent event) {
         // TODO Auto-generated method stub
         float range = event.values[ 0 ];
         if (range == mSensor.getMaximumRange()) {
             Toast.makeText( this , "正常模式" , Toast.LENGTH_LONG).show();
              audioManager.setMode(AudioManager.MODE_NORMAL);
         } else {
             Toast.makeText( this , "听筒模式" , Toast.LENGTH_LONG).show();
              audioManager.setMode(AudioManager.MODE_IN_CALL);
         }
     }
     @Override
     public void onAccuracyChanged(Sensor sensor, int accuracy) {
         // TODO Auto-generated method stub
     }
}

Android 听筒模式和扬声器模式切换的 实现相关推荐

  1. Android听筒模式不同版本兼容

    5.0以前Android听筒模式和扬声器模式这样就管用 扬声器:         //关闭麦克风          mAudioManager.setMicrophoneMute(false);   ...

  2. Android Receiver(听筒模式和扬声器模式,铃音模式)

    Android Receiver(听筒模式和扬声器模式,铃音模式) 2014年10月31日 09:45:56 老司机s 阅读数:13082 版权声明:本文为博主原创文章,未经博主允许不得转载.Andr ...

  3. Android听筒模式和免提模式的切换

    听筒和免提的切换并不是一句简单的setSpeakerphoneOn /*** 外放模式和听筒模式 切换** @param on*/private void changeToincall(boolean ...

  4. android 听筒模式外放模式的切换,YY项目之Android 听筒 扬声器 切换

    废话不多说,直接上代码: private void setSpeakerphoneOn(boolean on) { if (on) { // 为true打开喇叭扩音器:为false关闭喇叭扩音器. a ...

  5. CoreAudio实现录音播音和扬声器听筒模式的切换

    本例子使用Core Audio实现类似于微信的音频对讲功能,可以录音和播放并且实现了听筒模式和扬声器模式的切换.录音主要使用AVAudioRecorder类来实现录音功能,播放则使用AVAudioPl ...

  6. Android5.0版本之后切换听筒模式

    5.0以前Android听筒模式和扬声器模式这样就管用 扬声器: //关闭麦克风   mAudioManager.setMicrophoneMute(false);   // 打开扬声器   mAud ...

  7. android 设置听筒模式切换,Android开发【06-29视频贴】切换听筒模式部分手机失效,怎么解决?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 就是我做的是一个可以切换手机听筒模式和扬声器模式的APP,在其他手机上可以正常切换,但是在华为手机上切换失败,是什么原因? 是不是华为手机又其他方式?希望 ...

  8. android关闭听筒模式,Android开发【06-29视频贴】切换听筒模式部分手机失效,怎么解决?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 就是我做的是一个可以切换手机听筒模式和扬声器模式的APP,在其他手机上可以正常切换,但是在华为手机上切换失败,是什么原因? 是不是华为手机又其他方式?希望 ...

  9. android开发 听筒模式,Android开发【06-29视频贴】切换听筒模式部分手机失效,怎么解决?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 就是我做的是一个可以切换手机听筒模式和扬声器模式的APP,在其他手机上可以正常切换,但是在华为手机上切换失败,是什么原因? 是不是华为手机又其他方式?希望 ...

最新文章

  1. 四次面试:程序员越来越悲催了
  2. WIN7添加loopback接口
  3. Java学习笔记之:Java JDBC
  4. WINDOWS2003域控制器禁止U盘
  5. ROS多根adsl叠加负载均衡PCC的做法
  6. Laravel POST请求API接口 使用validate表单验证返回欢迎页
  7. 线性代数 第一章 行列式
  8. 制作Python的安装模块
  9. 解决Apache/PHP无法启动的问题
  10. 前端学习(3245):react的生命周期getDeriveStateFromProps
  11. Vue 快速集成ElementUI
  12. php apache 多进程,php多进程 防止出现僵尸进程 如何 使 apache 成为 僵尸进程
  13. 初学Java必须知道的几件事
  14. excel2007 设置点击单元格设置默认值
  15. web zxr10 中兴 路由器_中兴 ZXR10与思科路由器互联问题-路由器
  16. 《朱子治家格言》原文
  17. 小程序上线后部分图片不显示的问题
  18. 面试官:大量请求 Redis 不存在的数据,从而影响数据库,该如何解决?
  19. Centos6.5离线安装中文输入法
  20. 面试官问:颜色转换 'rgb(255, 255, 255)' - '#FFFFFF' 的多种思路

热门文章

  1. 农村小学计算机教育论文,浅谈小学信息技术教学
  2. Zepto中文API
  3. 小米 13和iQOO 11区别 参数对比评测
  4. 利用python读取excel中的公司名称获取公司的经营范围并回填进excel中
  5. 武田收到CHMP肯定意见,推荐ALUNBRIG(R) (brigatinib)用于治疗既往用过克唑替尼的ALK+非小细胞肺癌患者
  6. 苹果cmsV10 会员收费设置 会员VIP权限设置教程
  7. python中用pip安装出现Microsoft Visual C++ 14.0 is required. Get it with Microsoft Visual C++ Build Tools
  8. 两年后,我仍然想念耳机端口
  9. matlab的三维矩阵含义
  10. 汇编语言实验——SYAU