监视文件夹中外部SD卡上的更改

问题描述 投票:0回答:1

我正在尝试侦听Android Api 26+上外部SD卡上的文件夹更改,问题是我没有得到真实路径,仅得到内容URI。我几乎尝试了所有事情:

1-第三方库。

2- Environment.getExternalStorageDirectory();

3- System.getenv(“ SECONDARY_STORAGE”)

4- System.getenv(“ EXTERNAL_STORAGE”)

5- Environment.getExternalStoragePublicDirectory();

我无法访问外部SD卡,我需要一个真实的路径来添加FileObserver。关于如何收听SD卡上的文件夹或如何获取其路径的任何建议?

android android-sdcard
1个回答
0
投票

有几种方法可以从content://Content URI获取真实路径>

用途:

private String getRealPathFromURI(Context context, Uri contentUri) {
    Cursor cursor = null;
    try {
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } catch (Exception e) {
        Log.e(TAG, "getRealPathFromURI Exception : " + e.toString());
        return "";
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
}

参考:How to get Real Path from Uri?

另请参见:Android: Getting a file URI from a content URI?

并在后台观察文件夹:How to monitor folder for file changes in background? - SO Question

© www.soinside.com 2019 - 2024. All rights reserved.