我想在android上使用twitter4j在twitter上传图片

时间:2015-04-14 05:55:06

标签: android twitter4j

使用twitter4j在Twitter上上传图片时,除了Lollipop版本之外,它适用于所有手机。 你能帮助我吗,我正在使用AsyncTask

ConfigurationBuilder configurationbuilder = new ConfigurationBuilder();
        configurationbuilder.setDebugEnabled(true);
        configurationbuilder.setOAuthConsumerKey(twitter_consumer_key);
        configurationbuilder.setOAuthConsumerSecret(twitter_secret_key);
        configurationbuilder.setOAuthAccessToken(token);
        configurationbuilder.setOAuthAccessTokenSecret(secret);
        configurationbuilder.setMediaProviderAPIKey(twitpic_api_key);
        twitter4j.conf.Configuration configuration = configurationbuilder
                .build();

        Twitter twitter = new TwitterFactory(configuration).getInstance();
    //  Log.d("ImageUploader", "Start sending image...");
        try {
            StatusUpdate status = new StatusUpdate(editTweet.getText()
                    .toString());
            status.setMedia(new File(mPath));
            twitter.updateStatus(status);
            // url = imageupload.upload(new File(mPath));
            //result = 1;
            //System.out.println("URL Is : " + url);

        } catch (TwitterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            e.getStatusCode();
            e.getCause();
            e.getMessage();
        }

但是当我将它用于棒棒糖版本时,它没有在Twitter上传任何图像

1 个答案:

答案 0 :(得分:0)

对于API> = 19使用此代码

private String getRealPathFromURI_API19(Context context,
        Uri mImageCaptureUri2) {
    String filePath = "";
    String wholeID = DocumentsContract.getDocumentId(mImageCaptureUri2);

    // Split at colon, use second item in the array
    String id = wholeID.split(":")[1];

    String[] column = { MediaStore.Images.Media.DATA };

    // where id is equal to
    String sel = MediaStore.Images.Media._ID + "=?";

    Cursor cursor = context.getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI, column, sel,
            new String[] { id }, null);

    int columnIndex = cursor.getColumnIndex(column[0]);

    if (cursor.moveToFirst()) {
        filePath = cursor.getString(columnIndex);
    }
    cursor.close();
    return filePath;
}

对于API< 19使用此代码

public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = getContentResolver().query(contentUri, proj, null,
            null, null);
    if (cursor == null)
        return null;

    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

    cursor.moveToFirst();

    return cursor.getString(column_index);
}