使用情境:
如果我说我想要在电脑上能够访问手机SD卡上的某一个目录abc,你们是不是就是去新建一个类似"/mnt/sdcard/abc/"这样目录的文件夹?事实确实如此。不过,如果我们再加一条需求可能情况就不一样了。我想在我们的PC机上可以访问,但手机的设备管理器中是不能够去访问这个目录的,这又该怎么做了呢?
解决方案:
对于上述的问题,我们可以采用在需要创建的目录前面添加一个"."号。如上就可以写成"/mnt/sdcard/.abc/"。这样创建出来的目录在我们的手机上是访问不到的(前提是这部手机没有Root,就算Root了,也没有安装类似Root Explorer这样的软件)。但如果仅仅是这样,我们的PC机也同样访问不到。想要访问此目录,还需对其进行一层的包装。包装的方法如下:
我们可以使用这样的一个类进行包装:
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() { <