Привет, у меня в приложении есть галерея, которая показывает изображение в виде изображения, когда вы нажимаете на миниатюру.Я настраиваю прослушиватель длинных щелчков для диалогового окна с предупреждением, которое имеет 2 кнопки, одну из которых можно установить в качестве обоев, а другую - для общего доступа.У меня есть намерение поделиться и получить кеш для рисования несколько работает.Он работает в эмуляторе, но не на моем телефоне.Я использовал много примеров на этом сайте, чтобы это заработало, но оно не работает вообще.он продолжает закрывать приложение на моем телефоне.любая помощь приветствуется.
alertDialog.setButton2("Share",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
imgView.setDrawingCacheEnabled(true);
Bitmap b = imgView.getDrawingCache();
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard.getAbsolutePath() + "image.jpg");
try {
file.createNewFile();
OutputStream fos = null;
fos = new FileOutputStream(file);
b.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("Save Example", "Image saved.");
Intent shareIntent = new Intent(Intent.ACTION_SEND);
Uri phototUri = Uri.parse("file:///sdcard/image.jpg");
shareIntent.setData(phototUri);
shareIntent.setType("image/jpeg");
shareIntent.putExtra(Intent.EXTRA_STREAM, phototUri);
startActivity(Intent.createChooser(shareIntent, "Share Via"));
}
});
alertDialog.show();
return true;
}
});
Обновление: похоже, проблема с
b.compress(CompressFormat.JPEG, 95, fos);
, который постоянно говорит нулевой указатель.
Оказывается, нулевой указатель на самом деле является ошибкой read_only .. Так что на самом деле он не записывает файл, я получаю файловую систему ioexception только для чтения.Почему он это делает?