did*_*_X8 9 android facebook android-intent
我浪费了很多时间,试图通过共享Intent来共享一个简单的jpeg图像.
像往常一样最重要的是Facebook,和往常一样,它不起作用.
Intent shareIntent = new Intent(Intent.ACTION_SEND);
Uri picUri = Uri.parse("http://someserver.com/somepic.jpg");
shareIntent.setType("image/jpeg");
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
shareIntent.putExtra(Intent.EXTRA_TEXT, someString);
startActivity(Intent.createChooser(shareIntent, "some text..."));
Run Code Online (Sandbox Code Playgroud)
选择器打开很好,Facebook也打开并让我登录,但它告诉我updoad失败了.我也尝试了Flicker和Mail,它们都失败了.然后我尝试将图像写入本地文件并从那里发送,也失败了:
Drawable dr = ImageLoader.getDrawable(url);
Bitmap bmp = ((BitmapDrawable)dr).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 80, stream);
byte[] data = stream.toByteArray();
FileOutputStream ostream;
try {
ostream = this.openFileOutput("pic.jpeg", Context.MODE_WORLD_READABLE);
ostream.write(data);
} catch (Exception e) {
e.printStackTrace();
}
Uri picUri = Uri.fromFile(new File("pic.jpeg"));
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
Run Code Online (Sandbox Code Playgroud)
我不知道我是否正确地做到了,之前没有这样做过.
我的最后一次尝试是发送一个HTML字符串,其中包含img标记的图像.但Facebook似乎不会处理类型"text/html",所以它不是一个选项.我确信它只需要几行代码.但是哪些?
编辑
我忘记了这条线
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
Run Code Online (Sandbox Code Playgroud)
在第一个代码段中.当我尝试时它就在那里,也没有工作.没睡多久......
我想这会回答你的问题。/sf/answers/248717171/
看来您走在正确的道路上,我所能看到的是,在您的第一个代码片段中,您没有在任何地方使用 picUri,因此它没有被发送,而在第二个代码片段中,您设置了 EXTRA_STREAM 两次(其中不会引起任何问题,只是多余的代码)。
| 归档时间: |
|
| 查看次数: |
12758 次 |
| 最近记录: |