How to find a replacement for deprecated method?

13,168

Solution 1

If you press CTRL+left click on a method, you find the method declaration. That is where a method is created with its contents and javadoc. Javadoc for deprecated methods often include a @deprecated annotation where it mentions the new API and when it was deprecated.

In addition to the javadoc information can also be found in the reference at developer.android.com.

Live example: the Camera class. At the end of the class javadoc it has this:

/**
 * (other declarations, and last)
 * @deprecated We recommend using the new {@link android.hardware.camera2} API for new
 *             applications.
 */

There you also get a link to the new alternative. If you check the reference at developer.android.com you can also see when it was deprecated (API) and (if you have a new class) you can see when that was introduced. Android has a lot to manage when it comes to API's and what was introduced when especially considering there is a new API each year.


As for the Javadoc solution, it can be followed as far as you want. If you have class X, but class X is deprecated. There is a javadoc link to class Y, which replaces class X. For some reason class Y is also deprecated. But there is a javadoc link there that leads to class Z.

Above was a basic example of how you can find the newest replacements, even though the replacement for class X is deprecated. Something to keep in mind in ANdroid programming though, is the fact that you may need the deprecated methods to support lower versions on Android.

Solution 2

Use setAudioAttributes(AudioAttributes) instead of setAudioStreamType().

You can see these details in the Android Developer documentation.

https://developer.android.com/reference/android/media/MediaPlayer.html#setAudioStreamType(int)

To follow the latest changes, you can check the Android Developer blog: https://android-developers.googleblog.com/

Share:
13,168
noviceUser
Author by

noviceUser

Updated on June 09, 2022

Comments

  • noviceUser
    noviceUser about 2 years

    I am new to Android programming.

    I have been following a tutorial on creating a Music Player from this website

    The tutorial calls for a setAudioStreamType method from MediaPlayer Class which is deprecated. Which method replaces this deprecated method in particular? And, is there a source where we can find all deprecated methods and its current alternative?

    Here is the code I have where there is a warning about a deprecated method:

    public void  initMusicPlayer(){
        //set player properties
        player.setWakeMode(getApplicationContext(),
                PowerManager.PARTIAL_WAKE_LOCK);
        player.setAudioStreamType(AudioManager.STREAM_MUSIC);
        player.setOnPreparedListener(this);
        player.setOnCompletionListener(this);
        player.setOnErrorListener(this);
    }