2010-10-22 5 views
5

je veux obtenir le chemin android dossier galerie de la caméra pour enregistrer des images dans cettecomment obtenir le chemin du dossier galley android dynamiquement?

dans différents téléphones mobiles, il est différent par exemple dans la galaxie, il est

/sdcard/DCIM/camera/image.jpg 

et dans d'autres téléphones par exemple

/sdcard/media/images/image.jpg 

Obtenir le chemin vers le dossier de galerie dynamiquement?

toute aide serait appréciée.

Répondre

3

Vous pouvez utiliser exemple suivant l'Explorateur de fichiers qui affichent tous les trucs de votre téléphone et vous sélectionnerez Vos articles de 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); 

} 
} 
} 
+0

j'ai essayé le code ur mais il donne NullPointerException sur getdir. –

+0

peut-être essayer maintenant. – FabianCook

Questions connexes