Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to get path of android galley folder dynamically?

Tags:

android

i want to get android camera gallery folder path to save images in that

in different mobile phones it is different for example in galaxy it is

/sdcard/DCIM/camera/image.jpg

and in other phones for example

/sdcard/media/images/image.jpg

hot get path up to gallery folder dynamically?

any help would be appreciated.

like image 873
UMAR-MOBITSOLUTIONS Avatar asked Oct 22 '10 03:10

UMAR-MOBITSOLUTIONS


1 Answers

You Can Use Following example of File Explorer Which Display All Stuff of Your phone and You will Select Your items from galary

FileExplorer.java

  package com.fileUpload;

  import java.io.File;
  import java.util.ArrayList;
  import java.util.List;
  import android.app.AlertDialog;
  import android.app.ListActivity;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.ArrayAdapter;
  import android.widget.ListView;
  import android.widget.TextView;

  public class FileExplorer extends ListActivity {

  private List<String> item;
  private List<String> path;
  private String root="/";
  private TextView myPath;

  /** Called when the activity is first created. */
  @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.file);
    myPath = (TextView)findViewById(R.id.path);
    getDir(root);
}

private void getDir(String dirPath)
{
 myPath.setText("Location: " + dirPath);

 item = new ArrayList<String>();
 path = new ArrayList<String>();

 File f = new File(dirPath);
 File[] files = f.listFiles();

 if(!dirPath.equals(root))
 {

  item.add(root);
  path.add(root);

  item.add("../");
  path.add(f.getParent());

 }

 for(int i=0; i < files.length; i++)
 {
   File file = files[i];
   path.add(file.getPath());
   if(file.isDirectory())
    item.add(file.getName() + "/");
   else
    item.add(file.getName());
 }

 ArrayAdapter<String> fileList =
  new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, item);
 setListAdapter(fileList);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

File file = new File(path.get(position));

  if (file.isDirectory())
  {
    if(file.canRead())
        getDir(path.get(position));
   else
   {
      new AlertDialog.Builder(this)
      .setIcon(R.drawable.icon)
      .setTitle("[" + file.getAbsolutePath() + "] folder can't be read!")
      .setPositiveButton("OK", 
       new DialogInterface.OnClickListener() {

          @Override
          public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
          }
         }).show();
     }
   }
   else
   {
       Bundle b=new Bundle();
       b.putString("param1",file.getAbsolutePath());
       Intent i=new Intent(this,DemoActivity.class);
       i.putExtras(b);
       startActivity(i);

 }
 }
 }
like image 147
Rahul Avatar answered Nov 07 '22 08:11

Rahul