使用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上传任何图像
答案 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);
}