Android中SD card存储图片问题

我有一个小问题,我用下面的代码在SD card中保存图片:

public String SDSave( ) { //View arg0
                // TODO Auto-generated method stub
                OutputStream outStream = null;
                File file = new File( extStorageDirectory , AdName + ".PNG");
                try {
                    outStream = new FileOutputStream(file);
                    bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
                    outStream.flush();
                    outStream.close();

                    Toast.makeText(WhereAmI.this, "Saved", Toast.LENGTH_LONG).show();

                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
                }

            }

我用以下方法调用它:

String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");

然后显示俩个错误,第一个是在public String SDSave( )

错误 This method must return a result of type String
第二个是String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");

错误 The method SDSave() in the type WhereAmI is not applicable for the arguments (String)
请求大牛帮忙改正,好困惑。谢谢!

在manifest文件中写入:

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

就不用那么麻烦了。

public void SDSave(String file){
    File f=new File(file);
    ...
}

要调用你的方法返回一个字符串

 public String SDSave()

在代码的结尾返回:

return "someString"; 

如果你不想返回一个字符串,使用这个方法:

public void SDSave()

对于程序中的第二个错误,你应该给方法中传递一个字符串,但是在你的方法中没有设置任何变量。应该加上:

public void SDSave(String myInputStringVariable)