¿Qué significa que un método esté obsoleto y cómo puedo resolver los errores resultantes?

¿Por qué obtengo un error de depreciación en la línea que contiene setWallpaper(bmp) y cómo puedo resolverlo?

Error: El método setWallpaper (Bitmap) del tipo Context está obsoleto

 switch(v.getId()){ case R.id.bSetWallpaper: try { getApplicationContext().setWallpaper(bmp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; 

Cuando algo está obsoleto, significa que los desarrolladores han creado una mejor manera de hacerlo y que ya no debería estar utilizando la forma antigua o obsoleta. Las cosas que están obsoletas pueden ser eliminadas en el futuro.

En su caso, la forma correcta de configurar el fondo de pantalla si tiene una ruta de imagen es la siguiente:

 is = new FileInputStream(new File(imagePath)); bis = new BufferedInputStream(is); Bitmap bitmap = BitmapFactory.decodeStream(bis); Bitmap useThisBitmap = Bitmap.createScaledBitmap( bitmap, parent.getWidth(), parent.getHeight(), true); bitmap.recycle(); if(imagePath!=null){ System.out.println("Hi I am try to open Bit map"); wallpaperManager = WallpaperManager.getInstance(this); wallpaperDrawable = wallpaperManager.getDrawable(); wallpaperManager.setBitmap(useThisBitmap); 

Si tiene un URI de imagen, utilice lo siguiente:

 wallpaperManager = WallpaperManager.getInstance(this); wallpaperDrawable = wallpaperManager.getDrawable(); mImageView.setImageURI(imagepath); 

De la respuesta de Maidul a esta pregunta.

"Deprecated" significa que el código particular que está utilizando ya no es el método recomendado para lograr esa funcionalidad. Usted debe buscar en la documentación de su método dado, y es más que probable que proporcione un enlace al método recomendado en su lugar.

 WallpaperManager myWallpaperManager=WallpaperManager.getInstance(getApplicationContext()); try { myWallpaperManager.setBitmap(bmp); } catch (IOException e) { Toast.makeText(YourActivity.this, "Ooops, couldn't set the wallpaper", Toast.LENGTH_LONG).show(); } 

Debe utilizar WallpaperManager.setStream () en lugar de Context.setWallpaper (), ya que está obsoleto y puede eliminarse en las nuevas versiones de la API.

  • Cómo vincular un proyecto de biblioteca en Android Studio
  • Cómo analizar datos de 2 URL diferentes mediante el método asyncTask
  • KnoxVpnUidStorageknoxVpnSupported El valor API devuelto es falso
  • RelativeLayout no se puede convertir en android.support.v7.widget.Toolbar
  • Cómo crear AsyncTasks reutilizables en android?
  • Cómo escanear QRCode en android
  • AudioTrack en modo de transmisión MODE_STREAMING
  • Lectura rápida de enteros pequeños endian de archivo
  • Cómo incrustar el servidor i-jetty en la aplicación Android?
  • Dónde almacenar hashes, sales, claves en Aplicaciones de Escritorio
  • ¿Por qué estoy obteniendo nullpointer en onMeasure en GridView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.