免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 817 | 回复: 0
打印 上一主题 下一主题

android 铃声设置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:44 |只看该作者 |倒序浏览
android 铃声设置

1、首先选中列表的铃声

private void doPickRingtone() {

Intent intent
= new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
// Allow user to pick 'Default'
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
// Show only ringtones
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
// Don't show 'Silent'
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);

Uri ringtoneUri;
if (mCustomRingtone != null) {
ringtoneUri
= Uri.parse(mCustomRingtone);
}
else {
// Otherwise pick default ringtone Uri so that something is selected.
ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
}

// Put checkmark next to the current ringtone for this contact
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);

// Launch!
startActivityForResult(intent, RINGTONE_PICKED);
}

2、选中之后修改数据库

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
}

switch (requestCode) {
case RINGTONE_PICKED: {
      
// 选择完铃声之后获得选中铃音的URI,将其值存入数据库
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
handleRingtonePicked(pickedUri);
break;
}
}
}

private void handleRingtonePicked(Uri pickedUri) {
if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) {
mCustomRingtone
= null;
}
else {
mCustomRingtone
= pickedUri.toString();
}
saveData();
}

/**
* 保存数据
*/
private void saveData() {
ContentValues values
= new ContentValues();
values.put(Contacts.CUSTOM_RINGTONE, mCustomRingtone);
//这里的mContactId是当前联系人的Id
getContentResolver().update(Contacts.CONTENT_URI, values, Contacts._ID + " = " + mContactId, null) ;
}

通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单!
  AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
  //通话音量
  int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
  int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );
  Log.d(”VIOCE_CALL”, “max : ” + max + ” current : ” + current);
  //系统音量
  max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );
  current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );
  Log.d(”SYSTEM”, “max : ” + max + ” current : ” + current);
  //铃声音量
  max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );
  current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );
  Log.d(”RING”, “max : ” + max + ” current : ” + current);
  //音乐音量
  max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
  current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
  Log.d(”MUSIC”, “max : ” + max + ” current : ” + current);
  //提示声音音量
  max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM );
  current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );
  Log.d(”ALARM”, “max : ” + max + ” current : ” + current);
  设置音量的方法也很简单,AudioManager提供了方法:
  public void setStreamVolume(int streamType, int index, int flags)
  其中 streamType 有内置的常量,去文档里面就可以看到

xml中的配置需求

<RingtonePreference
android:key="RingtonePreference"
android:title="RingtonePreference"
android:summary="选择铃声"
/>

网址:http://www.myext.cn/android/21296.html

http://haogood.5d6d.com/thread-893-1-1.html

http://is00hcw.spaces.live.com/blog/cns!30EBEBD8BCD440DC!689.entry

http://hi.baidu.com/adnroidorg/blog/item/51e5e329024508365343c185.html

http://www.eoeandroid.com/thread-45220-1-1.html

http://blog.163.com/guozioo@126/blog/static/6408694720106711453584/

http://www.eoeandroid.com/thread-9252-1-1.html


 
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP