/首先需要接收一个Notification的参数 
private void setAlarmParams(Notification notification) { 
//AudioManager provides access to volume and ringer mode control. AudioManager volMgr = (AudioManager)

mAppContext.getSystemService(Context.AUDIO_SERVICE); 
switch (volMgr.getRingerMode()) {
//获取系统设置的铃声模式 
case AudioManager.RINGER_MODE_SILENT:
//静音模式,值为0,这时候不震动,不响铃 
notification.sound = null; 
notification.vibrate = null; 
break; 
case AudioManager.RINGER_MODE_VIBRATE:
//震动模式,值为1,这时候震动,不响铃 
notification.sound = null; 
notification.defaults |= Notification.DEFAULT_VIBRATE; break; case AudioManager.RINGER_MODE_NORMAL:
//常规模式,值为2,分两种情况:1_响铃但不震动,2_响铃+震动 
Uri ringTone = null; 
//获取软件的设置 
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mAppContext); 
if(!sp.contains(SystemUtil.KEY_RING_TONE)){
//如果没有生成配置文件,那么既有铃声又有震动 
notification.defaults |= Notification.DEFAULT_VIBRATE; notification.defaults |= Notification.DEFAULT_SOUND; 
}else{ String ringFile = sp.getString(SystemUtil.KEY_RING_TONE, null); 
if(ringFile==null){
//无值,为空,不播放铃声 
ringTone=null; 
}else if(!TextUtils.isEmpty(ringFile)){
//有铃声:1,默认2自定义,都返回一个uri 
ringTone=Uri.parse(ringFile); 

notification.sound = ringTone; 
boolean vibrate = sp.getBoolean(SystemUtil.KEY_NEW_MAIL_VIBRATE,true); 
if(vibrate == false){
//如果软件设置不震动,那么就不震动了 
notification.vibrate = null; 
}else{
//否则就是需要震动,这时候要看系统是怎么设置的:不震动=0;震动=1;仅在静音模式下震动=2; 
if(volMgr.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_OFF){ 
//不震动 
notification.vibrate = null; 
}else if(volMgr.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) ==

AudioManager.VIBRATE_SETTING_ONLY_SILENT){ 
//只在静音时震动 
notification.vibrate = null; }else{ 
//震动 
notification.defaults |= Notification.DEFAULT_VIBRATE; 



notification.flags |= Notification.FLAG_SHOW_LIGHTS;
//都给开灯 
break; 
default: break; 
}

}

package com.google.activity.voice;   
  
import android.content.Context;   
import android.media.AudioManager;   
import android.os.Bundle;   
import android.util.Log;   
import android.view.View;   
import android.view.View.OnClickListener;   
import android.widget.ImageButton;   
import android.widget.ImageView;   
import android.widget.ProgressBar;   
  
import com.google.Main;   
import com.google.R;   
  
  
  
public class IndexActivity extends Main {   
  
    /** 日志TAG */  
    private static final String TAG = ">>>>>>>> IndexActivity.java <<<<<<<";   
    /** 显示当前的设置 */  
    private ImageView mImageView;   
    /** 显示可用于设置声音的按钮  调大、调小、正常、静音、震动  */  
    private ImageButton mBt_up,mBt_down,mBt_normal,mBt_mute,mBt_vibrate;   
    /** 设置声音大小的进展条 */  
    private ProgressBar mProgressBar;   
    /** 管理音频 */  
    private AudioManager mAM;   
    /** 初始前声音的大小 */  
    private int volume = 0;   
       
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        // TODO Auto-generated method stub   
        super.onCreate(savedInstanceState);   
           
        setContentView(R.layout.volume);   
           
        setUI();   
        setAction();   
           
    }   
       
    /** 获取控件  */  
    private  void setUI() {   
        mImageView = (ImageView) findViewById(R.id.myImage);   
        mBt_down = (ImageButton) findViewById(R.id.bt_down);   
        mBt_up = (ImageButton) findViewById(R.id.bt_up);   
        mBt_mute = (ImageButton) findViewById(R.id.bt_mute);   
        mBt_normal = (ImageButton)findViewById(R.id.bt_normal);   
        mBt_vibrate = (ImageButton) findViewById(R.id.bt_vibrate);   
           
        mProgressBar = (ProgressBar) findViewById(R.id.mProgress);   
    }   
       
    /** 设置界面事件 */  
    private void setAction(){   
        mAM = (AudioManager) getSystemService(Context.AUDIO_SERVICE);   
        //设置初始的手机铃声音量   
        volume = mAM.getStreamVolume(AudioManager.STREAM_RING);   
        mProgressBar.setProgress(volume);   
           
        int mode = mAM.getRingerMode();   
           
        setMode(mode);   
           
        mBt_down.setOnClickListener(listener);   
        mBt_mute.setOnClickListener(listener);   
        mBt_normal.setOnClickListener(listener);   
        mBt_up.setOnClickListener(listener);   
        mBt_vibrate.setOnClickListener(listener);   
    }   
       
    private OnClickListener listener = new OnClickListener() {   
           
        @Override  
        public void onClick(View v) {   
            // TODO Auto-generated method stub   
            switch (v.getId())    
            {   //声音减小   
            case R.id.bt_down:   
                mAM.adjustVolume(AudioManager.ADJUST_LOWER,0);   
                volume = mAM.getStreamVolume(AudioManager.STREAM_RING);   
                mProgressBar.setProgress(volume);   
                setMode(mAM.getRingerMode());   
                break;   
                   
                //声音调大   
            case R.id.bt_up:   
                mAM.adjustVolume(AudioManager.ADJUST_RAISE,0);   
                volume = mAM.getStreamVolume(AudioManager.STREAM_RING);   
                mProgressBar.setProgress(volume);   
                setMode(mAM.getRingerMode());   
                break;   
                   
                //静音模式   
            case R.id.bt_mute:   
                mAM.setRingerMode(AudioManager.RINGER_MODE_SILENT);   
                volume = mAM.getStreamMaxVolume(AudioManager.STREAM_RING);   
                mProgressBar.setProgress(volume);   
                setMode(mAM.getRingerMode());   
                break;   
                   
                //正常模式   
            case R.id.bt_normal:   
                mAM.setRingerMode(AudioManager.RINGER_MODE_NORMAL);   
                volume = mAM.getStreamMaxVolume(AudioManager.STREAM_RING);   
                mProgressBar.setProgress(volume);   
                setMode(mAM.getRingerMode());   
                break;   
                   
                //振动模式   
            case R.id.bt_vibrate:   
                mAM.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);   
                volume = mAM.getStreamMaxVolume(AudioManager.STREAM_RING);   
                mProgressBar.setProgress(volume);   
                setMode(mAM.getRingerMode());   
                break;   
            default:   
                break;   
            }   
        }   
    };   
       
    /***  
     * 设置音频模式  
     * @param mode  
     */  
    private void setMode(int mode){   
        Log.i(TAG, "current mode= "+ mode);   
        if(mode == AudioManager.RINGER_MODE_NORMAL)//正常模式   
        {   
            mImageView.setImageResource(R.drawable.voice_normal);   
        }   
        else if (mode == AudioManager.RINGER_MODE_SILENT)//静音 模式    
        {   
            mImageView.setImageResource(R.drawable.voice_mute);   
        }   
        else if( mode == AudioManager.RINGER_MODE_VIBRATE)//振动模式   
        {   
            mImageView.setImageResource(R.drawable.voice_vibrate);   
        }   
           
           
    }   
       
}

android播放铃声相关推荐

  1. android 播放短铃声,Android使用SoundPool播放短音效

    前言 对于Android播放一些简短音效,例如提示音,或者铃声,相对于使用MediaPlayer,SoundPool可以节省更多资源,并且可以同时播放多个音效,而且可以针对不同音效设置不同播放品质 实 ...

  2. Android 设置铃声——给app设置自定义铃声功能

    因为有个需求是在自己的app中添加铃声并播放,而之前在网上查阅了相关的资料却大多都是教人怎么设置手机来电.闹钟等手机系统的功能,所以就以此文章作为记录. 一.本篇文章的大致内容是: 1.调用系统铃声界 ...

  3. Android中铃声的使用

    我之前也写过利用MediaPlayer播放音频,如果我们在应用中播放音乐,自然是不成问题.但是,如果我们是要播放一个简短的音效,那就有点不合适了.所以这里我们讲解一些Android中铃声的播放. 1. ...

  4. Android 双卡铃声设置

    关于来电铃声设置 目前Android原生系统只有一个铃声设置,即单卡铃声,项目中有双卡支持的需求,自然就需要能够进行双卡铃声的支持,本文不考虑双卡的实现,只针对双卡铃声的设置,谈一谈双卡下Settin ...

  5. 如何编写程序设置Android来电铃声

    转自:http://www.jizhuomi.com/android/example/360.html 我们在拿到新手机后通常会为其设置来年铃声,那么怎样通过代码来设置Android来电铃声,本文就为 ...

  6. Android 播放SD卡视频 Demo

    Android播放视频有好几种方式,比如VideoView,SurfaceView,Android自带的播放器,第三方播放器(比如vitamio等等 之前毕设用过,挺不错) 公司需要编写相关的测试代码 ...

  7. android intent铃声选择,Android 设置系统铃声和系统音量

    android系统铃声设置 public class Main extends Activity { /** Called when the activity is first created. */ ...

  8. [流媒体]Android 播放HLS/RTSP的原生类库 MediaPlayer

    之前做过一些关于android播放器的开发工作,当时懵懂无知,只知道一个ffmpeg,然后就费劲巴拉的用ndk把ffmpeg编译了,然后又自己封装了个库调用,那个过程可以看看这篇文章,然后我这里也有一 ...

  9. java 视频边下边播,VideoViewDemo android 播放器,支持边下边播 238万源代码下载- www.pudn.com...

    文件名称: VideoViewDemo下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 194 KB 上传时间: 2014-09-19 下载次数: 5 详细说明:a ...

最新文章

  1. Open3d学习计划—高级篇 6(体素化)
  2. python汉明距离检索_Python中的汉明距离
  3. 洛谷 P3960 列队【线段树】
  4. JAVA——使用Spring Boot Scheduled时注入simple-robot Bot解决方案
  5. 异常注意事项_finally有return语句
  6. AV1:下一代视频标准—约束定向增强滤波器
  7. 09.multi-get api操作
  8. Django(part44)--制作分页
  9. dockerfile cd目录_使用Werf和现有的Dockerfiles改善你的CI/CD体验
  10. 容器编排技术 -- kubeadm 实现细节
  11. 如何用Python做舆情时间序列可视化?
  12. php数据类型之自动转换和强制转换
  13. mysql 定时备份脚本
  14. 简述软件工程、软件开发方法、软件开发工具相关概念及之间的关系
  15. 固态硬盘是什么接口_固态硬盘都有哪些接口,是否通用吗?
  16. neo4j 入门例子
  17. function func() { for(var i=0; i<3; i++) { setTimeout(()=>{ consol
  18. [干货] 杜绝广告, 让你的电脑变的更加干净舒适
  19. 吐槽下Arcgis的二次开发
  20. linux文件中的换行符,Linux中的换行符

热门文章

  1. 游戏项目中的资源加载管理
  2. 微信保护社交隐私的几个小细节
  3. Blockchain Thinking : The Brain as a Decentralized Autonomous Corporation
  4. 计算机图形专业世界排名,2020 THE世界大学排名-美国电子电气工程专业
  5. 高级Android研发面试必问:Android屏幕适配全方位解析
  6. 标准md语法教程- Markdown从入门到精通(上)
  7. Go语言数组、切片去重
  8. java十次方社交项目实战(完整)
  9. 新的TwoWayView
  10. html游戏能不能手机,游戏可以佛系,但手机不可以