Android Fabric Twitter共享侦听器

Android Fabric Twitter共享侦听器,android,twitter,twitter-fabric,Android,Twitter,Twitter Fabric,我使用Fabric SDK从我的应用程序发送推文 我构建了一个共享对话框,并从活动中发送tweet @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TwitterAuthConfig authConfig = new TwitterAuthConfig(CONSUMER_KEY, CONSUMER_SECRET); Fabr

我使用Fabric SDK从我的应用程序发送推文

我构建了一个共享对话框,并从活动中发送tweet

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TwitterAuthConfig authConfig = new TwitterAuthConfig(CONSUMER_KEY, CONSUMER_SECRET);
    Fabric.with(this, new TwitterCore(authConfig), new TweetComposer());

    Bundle bundle = getIntent().getExtras().getBundle(SHARE_DATA);
    String description = bundle.getString(SHARE_DESCRIPTION);
    String title = bundle.getString(SHARE_TITLE);
    String picture = bundle.getString(SHARE_PICTURE_LINK);
    String link = bundle.getString(SHARE_LINK);

    TweetComposer.Builder builder = null;
    try {
        InputStream in = new java.net.URL(picture).openStream();
        Bitmap bitmap = BitmapFactory.decodeStream(in);
        Uri yourUri = getImageUri(this,bitmap);
        builder = new TweetComposer.Builder(this)
                .text(title + "\n" + description)
                .url(new URL(link))
                .image(yourUri);
        //??? IS THERE ANY LISTENER ???
        builder.show();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}

我想知道共享的状态,比如成功与否,但我找不到任何参与此操作的听众

我遗漏了什么?

您应该使用builder.createIntent()而不是使用builder.show():

要在onActivityResult()中获取结果反馈,请执行以下操作:


使用下面的方法通过rest服务twitt,并将媒体id传递为null。我正在从我的应用程序成功发布推文

public void postToTwitter(ArrayList<String>mediaIds) {
        String message;
        if(Validator.isNotNull(preferences.getFbShareMessage())){
            message=preferences.getFbShareMessage()+" "+com.aimdek.healthwel.network.Request.HOST_URL + "/user-history/" + userHistory.getUserId() + "/" + userHistory.getId();
        }
        else {
            message = getString(R.string.google_status, HWUtil.getFullName(preferences.getUserInfo().getFirstName(), preferences.getUserInfo().getLastName()), userHistory.getSportName(), HWUtil.secondToTime(userHistory.getDuration()))+" "+com.aimdek.healthwel.network.Request.HOST_URL + "/user-history/" + userHistory.getUserId() + "/" + userHistory.getId();
        }
        String mediaId;
        if (Validator.isNotNull(mediaIds) && mediaIds.size() > 0) {
            mediaId="";
            for (int i = 0; i < mediaIds.size(); i++) {
                if (i == 0) {
                    mediaId = mediaIds.get(i);
                } else {
                    mediaId += "," + mediaIds.get(i);
                }
            }
        }
        else {
            mediaId=null;
        }
        StatusesService statusesService = twitterApiClient.getStatusesService();
        statusesService.update(message, null, null, null, null, null, null, null, mediaId, new Callback<Tweet>() {
            @Override
            public void success(Result<Tweet> result) {
                dismissProgressDialog();
                if(Validator.isNotNull(preferences.getImagePath()) && !preferences.getImagePath().isEmpty()) {
                    preferences.getImagePath().clear();
                }
                com.aimdek.healthwel.network.Request.getRequest().sendRequest(com.aimdek.healthwel.network.Request.SHARE_USER_HISTORY, TwitterIntegration.this, TwitterIntegration.this, RequestParameterBuilder.buildMapForShareUserHistory(userHistory.getId(), TwitterIntegration.this));
            }

            @Override
            public void failure(TwitterException exception) {
                if(Validator.isNotNull(preferences.getImagePath()) && !preferences.getImagePath().isEmpty()) {
                    preferences.getImagePath().clear();
                }
                dismissProgressDialog();
                finish();
                HWUtil.showToast(TwitterIntegration.this,exception.getMessage());
            }
        });
    }
public void posttowitter(ArrayListmediaIds){
字符串消息;
if(Validator.isNotNull(preferences.getFbShareMessage())){
message=preferences.getFbShareMessage()+“”+com.aimdek.healthwel.network.Request.HOST_URL+“/user history/”+userHistory.getUserId()+“/”+userHistory.getId();
}
否则{
message=getString(R.string.google_status,HWUtil.getFullName(preferences.getUserInfo().getFirstName(),preferences.getUserInfo().getLastName()),userHistory.getSportName(),HWUtil.secondToTime(userHistory.getDuration())+“”+com.aimdek.healthwel.network.Request.HOST_URL+“/user history/”+userHistory.getUserId()/“+userHistory.getId();
}
字符串中间ID;
if(Validator.isNotNull(mediaIds)和&mediaIds.size()>0){
mediaId=“”;
对于(int i=0;i
你找到解决方案了吗?@ssh:我也有同样的问题。。你决定了吗?
@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();
        }
    }

}
public void postToTwitter(ArrayList<String>mediaIds) {
        String message;
        if(Validator.isNotNull(preferences.getFbShareMessage())){
            message=preferences.getFbShareMessage()+" "+com.aimdek.healthwel.network.Request.HOST_URL + "/user-history/" + userHistory.getUserId() + "/" + userHistory.getId();
        }
        else {
            message = getString(R.string.google_status, HWUtil.getFullName(preferences.getUserInfo().getFirstName(), preferences.getUserInfo().getLastName()), userHistory.getSportName(), HWUtil.secondToTime(userHistory.getDuration()))+" "+com.aimdek.healthwel.network.Request.HOST_URL + "/user-history/" + userHistory.getUserId() + "/" + userHistory.getId();
        }
        String mediaId;
        if (Validator.isNotNull(mediaIds) && mediaIds.size() > 0) {
            mediaId="";
            for (int i = 0; i < mediaIds.size(); i++) {
                if (i == 0) {
                    mediaId = mediaIds.get(i);
                } else {
                    mediaId += "," + mediaIds.get(i);
                }
            }
        }
        else {
            mediaId=null;
        }
        StatusesService statusesService = twitterApiClient.getStatusesService();
        statusesService.update(message, null, null, null, null, null, null, null, mediaId, new Callback<Tweet>() {
            @Override
            public void success(Result<Tweet> result) {
                dismissProgressDialog();
                if(Validator.isNotNull(preferences.getImagePath()) && !preferences.getImagePath().isEmpty()) {
                    preferences.getImagePath().clear();
                }
                com.aimdek.healthwel.network.Request.getRequest().sendRequest(com.aimdek.healthwel.network.Request.SHARE_USER_HISTORY, TwitterIntegration.this, TwitterIntegration.this, RequestParameterBuilder.buildMapForShareUserHistory(userHistory.getId(), TwitterIntegration.this));
            }

            @Override
            public void failure(TwitterException exception) {
                if(Validator.isNotNull(preferences.getImagePath()) && !preferences.getImagePath().isEmpty()) {
                    preferences.getImagePath().clear();
                }
                dismissProgressDialog();
                finish();
                HWUtil.showToast(TwitterIntegration.this,exception.getMessage());
            }
        });
    }