Androidがアルバムを更新
1560 ワード
4.4システムはブロードキャスト方式でアルバムをリフレッシュできるが4.4以上は異常を投げ出す.この方法のAPIレベルは19(4.4)以降は役に立たないからである.
sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
4.4システム以上はこの方法でファイルをスキャンし、アルバムを更新する目的を達成する必要がある
呼び出し:new singleMediaScanner(Context,File);//File絶対パスで画像ファイルのパスを取得
方法1:
呼び出し:scanFile(Path,context);
方法2:
2つの方法はすべて役に立ち、1つはファイルをスキャンし、1つはパスをスキャンする感じです.
http://stackoverflow.com/questions/4646913/android-how-to-use-mediascannerconnection-scanfile/5814533#方法の出所を添付して、大神に感謝します
sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
4.4システム以上はこの方法でファイルをスキャンし、アルバムを更新する目的を達成する必要がある
呼び出し:new singleMediaScanner(Context,File);//File絶対パスで画像ファイルのパスを取得
方法1:
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();
}
@Override
public void onMediaScannerConnected() {
mMs.scanFile(mFile.getAbsolutePath(), null);
}
@Override
public void onScanCompleted(String path, Uri uri) {
mMs.disconnect();
}
}
呼び出し:scanFile(Path,context);
方法2:
private void scanFile(String path,Context context) {
MediaScannerConnection.scanFile(context,
new String[] { path }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("TAG", "Finished scanning " + path);
}
});
}
2つの方法はすべて役に立ち、1つはファイルをスキャンし、1つはパスをスキャンする感じです.
http://stackoverflow.com/questions/4646913/android-how-to-use-mediascannerconnection-scanfile/5814533#方法の出所を添付して、大神に感謝します