In a previous question (Take screensot and save android) I found out how to save a file to the sd card of an android device and it works properly. Now I need to know how to find the file programatically by name, and then upload the file to facebook or twitter. Currently my biggest issue is just to find the file.
To get path of file from gallery
String filepath; // filepath contains path of the file
public void getImage()
{
// To open up a gallery browser
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),1);
// To handle when an image is selected from the browser, add the following to your Activity
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
// currImageURI is the global variable I'm using to hold the content:// URI of the image
Uri currImageURI = data.getData();
File file = new File(getRealPathFromURI(currImageURI));
if (file.exists())
{
filepath=file.getAbsolutePath();
}
else
{
System.out.println("File Not Found");
}
}
}
}
public String getRealPathFromURI(Uri contentUri)
{
// can post image
String [] proj={MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery( contentUri,
proj, // Which columns to return
null, // WHERE clause; which rows to return (all rows)
null, // WHERE clause selection arguments (none)
null); // Order-by clause (ascending by name)
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
To get image from sdcard
File file = new File(android.os.Environment.getExternalStorageDirectory(),"MyDraw");
if(file.exists())
{
File myfile = new File(file.getAbsoluteFile()+File.separator+"name.png");
String path = myfile.getAbsolutePath();
}
To upload file to a server. I am not aware of how to upload file to facebook or twitter. In general to upload file to server
public void upload(String filepath)
{
try
{
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost httppost = new HttpPost("youe url");
File file = new File(filepath);
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file, "image/jpeg");
mpEntity.addPart("userfile", cbFile);
httppost.setEntity(mpEntity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
}
catch(Exception e)
{
e.printStackTrace();
}
}
first you need know th path of image and then use the facebook sdk to upload the picture in the profile
https://developers.facebook.com/android/
in the sdk exist one example for upload a image
来源:https://stackoverflow.com/questions/16571001/uploading-android-file-by-name-from-sd-card