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

听筒播放Mp3 

下载Demohttp://download.csdn.net/detail/wds1181977/8114967




切换为听筒模式声音由听筒发出


AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_CALL);
 

 

切换为其他模式

am.setMode(AudioManager.MODE_NORMAL);//正常模式,即在没有铃音与电话的情况
am.setMode(AudioManager.MODE_RINGTONE);//铃响模式
am.setMode(AudioManager.MODE_IN_CALL);//接通电话模式 
am.setMode(AudioManager.MODE_IN_COMMUNICATION);//通话模式。

获取当前状态

 mAudioMode = am.getMode()



判断音频路由模式

am. isSpeakerphoneOn(); //检查喇叭扩音器是否开着。若喇叭扩音器开着,返回true
am. isBluetoothScoOn();/检查通信是否使用蓝牙SCO。
am. isBluetoothA2dpOn(); //检查A2DP音频路由到蓝牙耳机是否打开 音频到/从蓝牙耳机,返回ture
am. isWiredHeadsetOn();  //  检查音频路由到有线耳机是否开着。若音频被路由到/从有线耳机,返回true
am. isMusicActive();//检查是否有音乐是活动的

权限

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

设置喇叭扩音器打开或关闭。
这个方法只能用于代替音频设置的平台范围管理应用程序或主要电话应用程序。

参数on 为true打开喇叭扩音器;为false关闭喇叭扩音器。

public void setSpeakerphoneOn (boolean on)

铃声模式                     

获取当前铃音模式

getRingerMode()

设置当前模式

public void setRingerMode (int ringerMode)
am.setRingerMode(RINGER_MODE_NORMAL);//铃音正常模式
am.setRingerMode(RINGER_MODE_SILENT);//铃音静音模式 静音且不会振动
am.setRingerMode(RINGER_MODE_VIBRATE);//铃音震动模式 会静音且会振动

获取音量类型和大小

//通话音量  max 最大音量  current当前音量

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 ); 

设置音量大小



         int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//获取当前通话最大音量
         am.setStreamVolume(AudioManager.STREAM_VOICE_CALL, maxVolume,AudioManager.USE_DEFAULT_STREAM_TYPE);}  

调出系统音量控制  

    /**
     *  参数1:声音类型,
     *       可取为STREAM_VOICE_CALL(通话)、
     *             STREAM_SYSTEM(系统声音)、
     *             STREAM_RING(铃声)、
     *             STREAM_MUSIC(音乐)、
     *             STREAM_ALARM(闹铃声)
     *   参数2:调整音量的方向,可取
     *                ADJUST_LOWER(降低)、
     *                ADJUST_RAISE(升高)、                                             
     *                ADJUST_SAME
     *   参数3:可选的标志位
    * @param position
    */
adjustStreamVolume(int streamType, int direction, intflags)

//降低音量,调出系统音量控制  
if(flag == 0){  
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,  
                            AudioManager.FX_FOCUS_NAVIGATION_UP);  
}  
//增加音量,调出系统音量控制  
else if(flag == 1){  
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,  
                            AudioManager.FX_FOCUS_NAVIGATION_UP);  
}  









  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值