1.调用系统铃声设置的Intent,界面上会弹出选择铃声的对话框。
- //用于选择铃声后作相应的判断标记
- private static
final int REQUEST_CODE_PICK_RINGTONE =
1; - //保存铃声的Uri的字符串形式
- private String mRingtoneUri =
null;
- 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 (mRingtoneUri != null) {
- ringtoneUri = Uri.parse(mRingtoneUri);
- } 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, REQUEST_CODE_PICK_RINGTONE);
- startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
- }
Uri ringtoneUri;
if (mRingtoneUri != null) {
ringtoneUri = Uri.parse(mRingtoneUri);
} 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, REQUEST_CODE_PICK_RINGTONE);
startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
}
2.选择铃声之后作相应的处理,可以存储到数据库。
- @Override
- public void onActivityResult(int requestCode,
int resultCode, Intent data) { - if (resultCode != Activity.RESULT_OK) {
- return;
- }
- switch (requestCode) {
- case REQUEST_CODE_PICK_RINGTONE: {
- Uri pickedUri = data
- .getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
- handleRingtonePicked(pickedUri);
- break;
- }
- }
- }
- private void handleRingtonePicked(Uri pickedUri) {
- if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) {
- mRingtoneUri = null;
- } else {
- mRingtoneUri = pickedUri.toString();
- }
- // get ringtone name and you can save mRingtoneUri for database.
- if (mRingtoneUri != null) {
- rintoneNameView.setText(RingtoneManager
- .getRingtone(this, pickedUri).getTitle(this));
- } else {
- rintoneNameView.setText(getString(R.string.default_ringtone));
- }
- // ContentValues values = new ContentValues();
- // values.put(Contacts.CUSTOM_RINGTONE, mRingtoneUri);
- // //mContactId mean contacts id
- // getContentResolver().update(Contacts.CONTENT_URI, values,
- // Contacts._ID + " = " + mContactId, null);
- }