蓝牙文件夹,不同手机上的不同路径



我发现不同版本的android将收到的蓝牙文件放在不同的文件夹中。例如,我的一部运行android 2.2的测试手机将文件保存到以下路径:

/mnt/sdcard/Downloads/Bluetooth

和我的第二部测试手机,运行android 4.0将文件保存在这里

/mnt/sdcard/Bluetooth

这个操作系统是"问题"还是从手机制造开始设置的?

如果第一句话是正确的,我可以检查运行的是哪个版本的android,以及指向蓝牙文件夹的点吗?或者有更简单的方法吗?

谢谢!

几个小时后,我制定了两种方法。您应该将这些方法放在AsyncTaskThread中。这是我的两种方法:

public List<File> folderSearchBT(File src, String folder)
        throws FileNotFoundException {
    List<File> result = new ArrayList<File>();
    File[] filesAndDirs = src.listFiles();
    List<File> filesDirs = Arrays.asList(filesAndDirs);
    for (File file : filesDirs) {
        result.add(file); // always add, even if directory
        if (!file.isFile()) {
            List<File> deeperList = folderSearchBT(file, folder);
            result.addAll(deeperList);
        }
    }
    return result;
}

这是一个递归方法,它将把src参数中的所有文件夹添加到列表中。

我在这里的方法中使用这个方法:

public String searchForBluetoothFolder() {
    String splitchar = "/";
    File root = Environment.getExternalStorageDirectory();
    List<File> btFolder = null;
    String bt = "bluetooth";
    try {
        btFolder = folderSearchBT(root, bt);
    } catch (FileNotFoundException e) {
        Log.e("FILE: ", e.getMessage());
    }
    for (int i = 0; i < btFolder.size(); i++) {
        String g = btFolder.get(i).toString();
        String[] subf = g.split(splitchar);
        String s = subf[subf.length - 1].toUpperCase();
        boolean equals = s.equalsIgnoreCase(bt);
        if (equals)
            return g;
    }
    return null; // not found
}

希望这有帮助,伙计们!

最新更新