как открыть определенные папки изображений с помощью галереи Android по умолчанию - PullRequest
2 голосов
/ 08 декабря 2011

Я хочу открыть изображения определенной папки в моей программе, используя приложение галереи Android по умолчанию.Я использовал этот код, данный Пиюш Мишрой в посте, но проблему, которую я написал ниже кода

public class GalleryActivity extends Activity implements MediaScannerConnectionClient{
    /** Called when the activity is first created. */
     public String[] allFiles;
     private String SCAN_PATH ;
     private static final String FILE_TYPE = "images/*";

     private MediaScannerConnection conn;
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

         File folder = new File("/sdcard/images/");
         allFiles = folder.list();
      //   uriAllFiles= new Uri[allFiles.length];
         for(int i=0;i<allFiles.length;i++)
         {
             Log.d("all file path"+i, allFiles[i]+allFiles.length);
         }
       //  Uri uri= Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString()+"/yourfoldername/"+allFiles[0]));
         SCAN_PATH=Environment.getExternalStorageDirectory().toString()+"/images/"+allFiles[0];
         Log.e("SCAN PATH", "Scan Path " + SCAN_PATH);
         Button scanBtn = (Button)findViewById(R.id.scanBtn);
         scanBtn.setOnClickListener(new OnClickListener(){
         @Override       
         public void onClick(View v) {
             startScan();
         }});
         }
         private void startScan()
         {
         Log.d("Connected","success"+conn);
         if(conn!=null)
         {
         conn.disconnect();
         }
         conn = new MediaScannerConnection(this,this);
         conn.connect();
         }
     @Override
     public void onMediaScannerConnected() {
         Log.d("onMediaScannerConnected","success"+conn);
         conn.scanFile(SCAN_PATH, FILE_TYPE);    
     }
     @Override
     public void onScanCompleted(String path, Uri uri) {
         try {
             Log.d("onScanCompleted",uri.toString() + "success"+conn);
             if (uri != null)                
             {

             Intent intent = new Intent(Intent.ACTION_DEFAULT);
             intent.setData(uri);
             startActivity(intent);
             }
             } finally 

             {
             conn.disconnect();
             conn = null;
             }


}
 }

Но этот код также показывает другие изображения, присутствующие на устройстве

Ответы [ 3 ]

1 голос
/ 26 февраля 2013

У меня та же проблема, я хотел бы запустить галерею в определенную папку с видео и изображениями.

С этим я всегда получаю: ActivityNotFoundException

На основе других сообщений я могу запускать галерею, но не в определенную папку, а также не могу запускать как видео, так и изображения. Вытаскиваю мои волосы на этом. Пыталась реализовать вид сетки с миниатюрами, что может быть вариантом. Но зачем заниматься созданием, созданием потоков и кэшированием миниатюр, когда это делает приложение галереи.

Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);

intent.setData(uri);
intent.setType("image/*");

startActivityForResult(intent, 0);
0 голосов
/ 31 января 2012

отправить трансляцию, прежде чем использовать это для обновления галереи. просто скопируйте и вставьте его.

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file:/+ Environment.getExternalStorageDirectory())));
0 голосов
/ 08 декабря 2011

Я думаю, что это поможет Галерея с фильтром папок

Даже когда я пытался это сделать .. Мне не удалось найти способ для этого ... пришлось много искать, но бесполезно ..

...