我正在按照本教程在twitter上分享推文+图片。 https://docs.fabric.io/android/twitter/compose-tweets.html
它完美地在Twitter上分享成功和失败回复的文字,但我无法分享图片,任何人都指导我在这里做错了什么?
注意:当我从上传的应用程序的drawable文件夹中共享图像时,我必须从Internet下载图像,然后将其保存在内部存储中。
下面的评论代码清楚地解释了我在测试时将图像保存在内部存储中。
public void composetweet()
{
File myDir = getFilesDir();
File savedImage = new File(myDir + "/text/","test.jpg");
/* if(savedImage.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(savedImage.getAbsolutePath());
ImageView myTestImage = (ImageView) findViewById(R.id.myimageview);
myTestImage.setImageBitmap(myBitmap);
}*/
Uri myImageUri = Uri.fromFile(savedImage);
Intent intent = new TweetComposer.Builder(this)
.text("just setting up my Fabric.")
.image(myImageUri)
.createIntent();
startActivityForResult(intent, TWEET_COMPOSER_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == TWEET_COMPOSER_REQUEST_CODE) {
if(resultCode == Activity.RESULT_OK) {
// onTwitterSuccess();
} else if(resultCode == Activity.RESULT_CANCELED) {
// onTwitterCancel();
}
}
}
我也尝试过:
Uri myImageUri = Uri.fromFile(savedImage);
TweetComposer.Builder builder = new TweetComposer.Builder(this)
.text("just setting up my Fabric.")
.image(myImageUri);
builder.show();
但没有运气。
有什么想法吗?
答案 0 :(得分:0)
图像Uri应该是本地文件的文件Uri(即file://absolute_path
方案)。例如:
File myImageFile = new File("/path/to/image");
Uri myImageUri = Uri.fromFile(myImageFile);
尝试用绝对路径检索图像路径也是设置Twittercard的另一个选项。
答案 1 :(得分:0)
经过一些研究后我发现:
但是如果你想在另一个应用程序中共享从你的应用程序创建的文件,内部存储将不会授予你权限。
因此我按照这个解决方案来完成这项工作:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.mobitsolutions.socialmediashare.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/pathfile"/>
</provider>