3

我无法将存储在 SD 卡中的图片发送到 Facebook。

我为此编写了两种方法:第一种方法是可以的。在这种情况下,会出现一个选择器。我选择了屏幕上的Facebook,带有完整界面的facebook启动。图片出现在脸书上。我键入文本并按发布按钮。

Uri screenshotUri = Uri.parse("file:///sdcard/"+nomFichier);  
try{
Intent intentPartager = new Intent(Intent.ACTION_SEND);
intentPartager.setType("image/*");
intentPartager.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(intentPartager, "Share image using"));               
} 
catch(Exception e){
        e.printStackTrace();
        Toast.makeText(this,R.string.erreurFaceBookAbsent,Toast.LENGTH_SHORT).show();
   }

这种方法很好让用户选择发送图片的软件(彩信,推特,脸书,...),但我想简化命令,直接调用脸书。所以我使用第二种方法和 .setClassName("com.facebook.katana","com.facebook.katana.ShareLinkActivity") 指令来强制 facebook 调用。不幸的是,这第二个不起作用。Facebook 已启动,但没有在 facebook 中下载图片(没有出现在 facebook 中)。facebook的屏幕界面也不同于第一种方法???。

Uri screenshotUri = Uri.parse("file:///sdcard/"+nomFichier);  
try{
Intent intentFacebook = new Intent(Intent.ACTION_SEND);
intentFacebook.setType("image/*");
intentFacebook.setClassName("com.facebook.katana","com.facebook.katana.ShareLinkActivity");
intentFacebook.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
//intentFacebook.putExtra(Intent.EXTRA_TEXT, "Mes performances avec SpeedMeter");
intentFacebook.putExtra(Intent.EXTRA_STREAM, screenshotUri);
//startActivity(intentFacebook);
startActivityForResult(intentFacebook, CODE_RETOUR_FACEBOOK);
} catch(Exception e){
        e.printStackTrace();
        Toast.makeText(this,R.string.erreurFaceBookAbsent,Toast.LENGTH_SHORT).show();
        }

有人可以帮助我吗?第二种方法的问题在哪里?西里尔

4

0 回答 0