Ответ 1
после исправления моей детской ошибки (см. часть EDIT) и используя этот фрагмент кода, я, наконец, решил эту проблему.
Если кто-нибудь знает, в чем разница между использованием contentValue
и моим подходом, поделитесь этим со мной.
Я создаю растровое изображение в своем приложении и хочу поделиться им через приложения электронной почты или Facebook с помощью Intent.ACTION_SEND. откроется окно совместного доступа, появится значок gmail и yahoomail apps, но нет facebook или g +! Я действительно не знаю, в чем проблема. Есть еще одна проблема, что приложение Gmail не может прикрепить файл (созданный из растрового изображения). Я прочитал несколько подобных вопросов, но все же у меня есть запас. Помогите мне пожалуйста.
вот мой код для обмена:
private static File writePhotoPng(Bitmap data, String pathName) {
File file = new File(pathName);
try {
file.createNewFile();
// BufferedOutputStream os = new BufferedOutputStream(
// new FileOutputStream(file));
FileOutputStream os = new FileOutputStream(file);
data.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
return file;
}
public static void ShareOnFb(Bitmap share, Activity activity, String emailSubject){
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
// EDIT:
// !!! childish mistake. below line is correct !!! intent.setType("Image/*");
intent.setType("image/*");
//add data to intent, the receiving app will decide what to do with it.
// email subject:
if (emailSubject != null && !emailSubject.equals("")){
intent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
}
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(writePhotoPng(share, "temp.png")));
activity.startActivity(Intent.createChooser(intent, "Share on"));
}
после исправления моей детской ошибки (см. часть EDIT) и используя этот фрагмент кода, я, наконец, решил эту проблему.
Если кто-нибудь знает, в чем разница между использованием contentValue
и моим подходом, поделитесь этим со мной.