mam te uprawnienia w moim manifestu.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
Ale używam docelowego pakietu SDK w wersji 15. Czy istnieje wymóg, aby użyć docelowego zestawu SDK 18?
BTW:
Oto przykładowy kod do pobierania zdjęć profilowych z Facebook:
private class DownloadProfilePicTask extends AsyncTask<Void,String,String> {
Bitmap profilePic;
String fileName;
String id;
String type;
URL img_value;
public DownloadProfilePicTask(String i,String ty)
{
id = i;
if(id==null)
{
//Log.v("Id is null", "Error");
}
//Log.v("Download Profile Pic Task initialized for id:",id);
type = ty;
}
@Override
protected String doInBackground(Void...param) {
String root = Environment.getExternalStorageDirectory().toString();
if(root==null)
{
return null;
}
try{
profilePic = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());
}
catch (IOException e) {
e.printStackTrace();
}
if(profilePic == null)
{
//Log.v("profilePic is null", "Error");
}
//Log.v("Root for saving images",root);
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
fileName = root + "/saved_images/" + id + ".png";
//Log.v("filename is ",fileName);
File file = new File (fileName);
fileName = file.getPath();
if (file.exists()) file.delete();
try {
FileOutputStream out = new FileOutputStream(file);
profilePic.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return id;
}
@Override
protected void onPreExecute()
{
try
{
img_value = new URL("http://graph.facebook.com/"+id+"/picture?type=" + type);
}
catch (MalformedURLException e) {
e.printStackTrace();
}
}
@Override
protected void onPostExecute(String result) {
}
}
a potem po prostu zadzwoń:
new DownloadProfilePicTask(id,type).execute();
do automatycznego pobierania i zapisywania obrazów.
Uwaga: Będziesz musiał grać trochę z filePath dla dokładnej lokalizacji.
Czy używasz HTC do testowania? –
Zaktualizowany OP, aby wyjaśnić, że jest to na emulatorze. Jednak użytkownicy zgłosili, że aktualizacja 4.3 powoduje przerwanie aplikacji i jestem pewien, że wynika to z tego problemu. – f2prateek
Czy twój emulator zamontował kartę SD, to znaczy, że zapomniałem włączyć emulację SD? :) Czy możesz sprawdzić, czy plik istnieje, jeśli nie, utwórz plik tymczasowy i zapisz go w strumieniu wyjściowym, który otrzymałeś z ContentResolver –