Java Code Examples for android.media.RingtoneManager#getActualDefaultRingtoneUri()

The following examples show how to use android.media.RingtoneManager#getActualDefaultRingtoneUri() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AlarmScreenActivity.java    From BaldPhone with Apache License 2.0 6 votes vote down vote up
public static Ringtone getRingtone(Context context) {
    Uri alert =
            RingtoneManager
                    .getActualDefaultRingtoneUri(context.getApplicationContext(), RingtoneManager.TYPE_ALARM);
    if (alert == null)
        alert = RingtoneManager
                .getActualDefaultRingtoneUri(context.getApplicationContext(), RingtoneManager.TYPE_NOTIFICATION);
    if (alert == null)
        alert = RingtoneManager
                .getActualDefaultRingtoneUri(context.getApplicationContext(), RingtoneManager.TYPE_RINGTONE);
    final Ringtone ringtone = RingtoneManager.getRingtone(context, alert);
    final AudioManager audioManager = (AudioManager) context.getSystemService(AUDIO_SERVICE);
    if (audioManager != null) {//who knows lol - btw don't delete user's may lower the alarm sounds by mistake
        final int alarmVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM) * (BPrefs.get(context).getInt(BPrefs.ALARM_VOLUME_KEY, BPrefs.ALARM_VOLUME_DEFAULT_VALUE) + 6) / 10;
        audioManager.setStreamVolume(AudioManager.STREAM_ALARM, alarmVolume, 0);
    }
    ringtone.setAudioAttributes(alarmAttributes);
    return ringtone;
}
 
Example 2
Source File: ExpandedAlarmViewHolder.java    From ClockPlus with GNU General Public License v3.0 6 votes vote down vote up
private Uri getSelectedRingtoneUri() {
    // If showing an item for "Default" (@see EXTRA_RINGTONE_SHOW_DEFAULT), this can be one
    // of DEFAULT_RINGTONE_URI, DEFAULT_NOTIFICATION_URI, or DEFAULT_ALARM_ALERT_URI to have the
    // "Default" item checked.
    //
    // Otherwise, use RingtoneManager.getActualDefaultRingtoneUri() to get the "actual sound URI".
    //
    // Do not use RingtoneManager.getDefaultUri(), because that just returns one of
    // DEFAULT_RINGTONE_URI, DEFAULT_NOTIFICATION_URI, or DEFAULT_ALARM_ALERT_URI
    // depending on the type requested (i.e. what the docs calls "symbolic URI
    // which will resolved to the actual sound when played").
    String ringtone = getAlarm().ringtone();
    return ringtone.isEmpty() ?
            RingtoneManager.getActualDefaultRingtoneUri(getContext(), RingtoneManager.TYPE_ALARM)
            : Uri.parse(ringtone);
}
 
Example 3
Source File: SettingsProvider.java    From Study_Android_Demo with Apache License 2.0 5 votes vote down vote up
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {

    /*
     * When a client attempts to openFile the default ringtone or
     * notification setting Uri, we will proxy the call to the current
     * default ringtone's Uri (if it is in the media provider).
     */
    int ringtoneType = RingtoneManager.getDefaultType(uri);
    // Above call returns -1 if the Uri doesn't match a default type
    if (ringtoneType != -1) {
        Context context = getContext();

        // Get the current value for the default sound
        Uri soundUri = RingtoneManager.getActualDefaultRingtoneUri(context, ringtoneType);

        if (soundUri != null) {
            // Proxy the openFile call to media provider
            String authority = soundUri.getAuthority();
            if (authority.equals(MediaStore.AUTHORITY)) {
                return context.getContentResolver().openFileDescriptor(soundUri, mode);
            }
        }
    }

    return super.openFile(uri, mode);
}
 
Example 4
Source File: MainActivity.java    From WechatUnrecalled with GNU General Public License v3.0 5 votes vote down vote up
private void requestRingtone(String tag) {
    if (!mSettingsHelper.getBoolean(tag + "_ringtone_enable", false))
        return;

    int request_code = -1;
    switch (tag) {
        case "custom":
            request_code = REQUEST_TONE_PICKER_CUSTOM;
            break;
        case "new_comment":
            request_code = REQUEST_TONE_PICKER_NEW_COMMENT;
            break;
        case "msg_recall":
            request_code = REQUEST_TONE_PICKER_MSG_RECALL;
            break;
        case "comment_recall":
            request_code = REQUEST_TONE_PICKER_COMMENT_RECALL;
    }

    if (request_code == -1)
        return;

    String uri = mSettingsHelper.getString(tag + "_ringtone", "");
    final Uri currentTone = TextUtils.isEmpty(uri) ? RingtoneManager
            .getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION) :
            Uri.parse(uri);
    Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, getString(R.string.ringtone_selection));
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currentTone);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
    startActivityForResult(intent, request_code);
}
 
Example 5
Source File: AlarmSettings.java    From SuntimesWidget with GNU General Public License v3.0 5 votes vote down vote up
public static Uri getDefaultRingtoneUri(Context context, AlarmClockItem.AlarmType type)
{
    switch (type)
    {
        case ALARM:
            return RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_ALARM);
        case NOTIFICATION:
        default:
            return RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION);
    }
}
 
Example 6
Source File: AlertActivity.java    From product-emm with Apache License 2.0 5 votes vote down vote up
/**
 * This method is used to start ringing the phone.
 */
@TargetApi(21)
private void startRing() {
	if (audio != null) {
		audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
		audio.setStreamVolume(AudioManager.STREAM_RING, audio.getStreamMaxVolume(AudioManager.STREAM_RING),
		                      AudioManager.FLAG_PLAY_SOUND);

		defaultRingtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE);

		if (defaultRingtoneUri != null) {
			defaultRingtone = RingtoneManager.getRingtone(this, defaultRingtoneUri);

			if (defaultRingtone != null) {
				if (deviceInfo.getSdkVersion() >= Build.VERSION_CODES.LOLLIPOP) {
					AudioAttributes attributes = new AudioAttributes.Builder().
							setUsage(AudioAttributes.USAGE_NOTIFICATION).
							setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION).
							build();
					defaultRingtone.setAudioAttributes(attributes);
				} else {
					defaultRingtone.setStreamType(AudioManager.STREAM_NOTIFICATION);
				}
				defaultRingtone.play();
			}
		}
	}
}
 
Example 7
Source File: RingTools.java    From Mp3Cutter with GNU General Public License v3.0 votes vote down vote up
private static void setRingHasPermission(Activity context, int type, String path) {
        Uri oldRingtoneUri = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE); //系统当前  通知铃声
        Uri oldNotification = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION); //系统当前  通知铃声
        Uri oldAlarm = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_ALARM); //系统当前  闹钟铃声
        File sdfile = new File(path);
        ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.DATA, sdfile.getAbsolutePath());
        values.put(MediaStore.MediaColumns.TITLE, sdfile.getName());
        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
        values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
        values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
        values.put(MediaStore.Audio.Media.IS_ALARM, true);
        values.put(MediaStore.Audio.Media.IS_MUSIC, true);

        Uri uri = MediaStore.Audio.Media.getContentUriForPath(sdfile.getAbsolutePath());
        Uri newUri = null;
        String deleteId = "";
        try {
            Cursor cursor = context.getContentResolver().query(uri, null, MediaStore.MediaColumns.DATA + "=?", new String[]{path}, null);
            if (cursor.moveToFirst()) {
                deleteId = cursor.getString(cursor.getColumnIndex("_id"));
            }
            Logger.d(" + deleteId" + deleteId);

            context.getContentResolver().delete(uri,
                    MediaStore.MediaColumns.DATA + "=\"" + sdfile.getAbsolutePath() + "\"", null);
            newUri = context.getContentResolver().insert(uri, values);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (newUri != null) {
            String ringStoneId = "";
            String notificationId = "";
            String alarmId = "";
            if (null != oldRingtoneUri) {
                ringStoneId = oldRingtoneUri.getLastPathSegment();
            }
            if (null != oldNotification) {
                notificationId = oldNotification.getLastPathSegment();
            }
            if (null != oldAlarm) {
                alarmId = oldAlarm.getLastPathSegment();
            }
            Uri setRingStoneUri;
            Uri setNotificationUri;
            Uri setAlarmUri;
            if (type == RingtoneManager.TYPE_RINGTONE || ringStoneId.equals(deleteId)) {
                setRingStoneUri = newUri;
            } else {
                setRingStoneUri = oldRingtoneUri;
            }
            if (type == RingtoneManager.TYPE_NOTIFICATION || notificationId.equals(deleteId)) {
                setNotificationUri = newUri;
            } else {
                setNotificationUri = oldNotification;
            }
            if (type == RingtoneManager.TYPE_ALARM || alarmId.equals(deleteId)) {
                setAlarmUri = newUri;
            } else {
                setAlarmUri = oldAlarm;
            }
            RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, setRingStoneUri);
            RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION, setNotificationUri);
            RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_ALARM, setAlarmUri);
            switch (type) {
                case RingtoneManager.TYPE_RINGTONE:
                    Toast.makeText(context.getApplicationContext(), "设置来电铃声成功!", Toast.LENGTH_SHORT).show();
                    break;
                case RingtoneManager.TYPE_NOTIFICATION:
                    Toast.makeText(context.getApplicationContext(), "设置通知铃声成功!", Toast.LENGTH_SHORT).show();
                    break;
                case RingtoneManager.TYPE_ALARM:
                    Toast.makeText(context.getApplicationContext(), "设置闹钟铃声成功!", Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }