Como definir a imagem como papel de parede programaticamente?

Eu tenho desenvolvido o aplicativo que precisa definir uma imagem como papel de parede.

Código:

<code>WallpaperManager m=WallpaperManager.getInstance(this);

String s=Environment.getExternalStorageDirectory().getAbsolutePath()+"/1.jpg";
File f=new File(s);
Log.e("exist", String.valueOf(f.exists()));
try {
        InputStream is=new BufferedInputStream(new FileInputStream(s));
        m.setBitmap(BitmapFactory.decodeFile(s));

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.e("File", e.getMessage());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.e("IO", e.getMessage());
    }
</code>

Também adicionei a seguinte permissão:

<code><uses-permission android:name="android.permission.SET_WALLPAPER" />
</code>

Mas isso não funciona; o arquivo existe no sdcard. Onde cometi um erro?

questionAnswers(2)

yourAnswerToTheQuestion