私のアプリは写真を撮りギャラリー/ MyAppname /の下に保存します。ギャラリーの下にあるMy appのディレクトリを開くだけです。私はすべての写真を見たいだけです。Androidギャラリーで特定のディレクターを開く方法
すべての写真をギャラリーアプリと同じように見たいです。 pleseはスクリーンショットをチェック: -
私のアプリは写真を撮りギャラリー/ MyAppname /の下に保存します。ギャラリーの下にあるMy appのディレクトリを開くだけです。私はすべての写真を見たいだけです。Androidギャラリーで特定のディレクターを開く方法
すべての写真をギャラリーアプリと同じように見たいです。 pleseはスクリーンショットをチェック: -
次のコードを理解するために使用このリンクを示唆している特定のディレクトリを開きますギャラリーでこのコードは古いAndroidデバイスと新しいAndroidデバイスの両方でうまく動作します。私はAndroidの6に
public static void openGallery(Context context) {
String bucketId = "";
final String[] projection = new String[] {"DISTINCT " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME + ", " + MediaStore.Images.Media.BUCKET_ID};
final Cursor cur = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
while (cur != null && cur.moveToNext()) {
final String bucketName = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME)));
if (bucketName.equals("Your_dir_name")) {
bucketId = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_ID)));
break;
}
}
Uri mediaUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
if (bucketId.length() > 0) {
mediaUri = mediaUri.buildUpon()
.authority("media")
.appendQueryParameter("bucketId", bucketId)
.build();
}
if(cur != null){
cur.close();
}
Intent intent = new Intent(Intent.ACTION_VIEW, mediaUri);
context.startActivity(intent);
}
更新された質問についてMediaScannerConnectionClient
実装
package com.data.pictures;
import java.io.File;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.MediaScannerConnection;
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Pictures extends Activity {
String SCAN_PATH;
File[] allFiles ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse_picture);
File folder = new File(Environment.getExternalStorageDirectory().getPath()+"/test/");
allFiles = folder.listFiles();
((Button) findViewById(R.id.button1))
.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
new SingleMediaScanner(Pictures.this, allFiles[0]);
}
});
}
public class SingleMediaScanner implements MediaScannerConnectionClient {
private MediaScannerConnection mMs;
private File mFile;
public SingleMediaScanner(Context context, File f) {
mFile = f;
mMs = new MediaScannerConnection(context, this);
mMs.connect();
}
public void onMediaScannerConnected() {
mMs.scanFile(mFile.getAbsolutePath(), null);
}
public void onScanCompleted(String path, Uri uri) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
mMs.disconnect();
}
}
}
を使用することができますが、私はLink
をテストし、それは1枚の写真を示しhttps://stackoverflow.com/questions/10749351/how-to-open-one-particular-folder-from-gallery-in-android – sasikumar