MTP 看不到软件创建的文件夹(Android端)
16lz
2021-01-26
开发中有一种需求,要求再PC端连接手机端访问里边的数据库文件,连接使用的是MTP模式,怎么都找不到要用的文件。
这里参考: http://www.binkery.com/archives/473.html
解决:
其实 Android 内部已经实现了相关的API ,下面是在网上找到的封装的方法。
public class MediaScanner { private MediaScannerConnection mConn = null; private SannerClient mClient = null; private File mFile = null; private String mMimeType = null; public MediaScanner(Context context) { if (mClient == null) { mClient = new SannerClient(); } if (mConn == null) { mConn = new MediaScannerConnection(context, mClient); } } class SannerClient implements MediaScannerConnection.MediaScannerConnectionClient { public void onMediaScannerConnected() { if (mFile == null) { return; } scan(mFile, mMimeType); } public void onScanCompleted(String path, Uri uri) { mConn.disconnect(); } private void scan(File file, String type) { Log.e(TAG, "scan " + file.getAbsolutePath()); if (file.isFile()) { mConn.scanFile(file.getAbsolutePath(), null); return; } File[] files = file.listFiles(); if (files == null) { return; } for (File f : file.listFiles()) { scan(f, type); } } } public void scanFile(File file, String mimeType) { mFile = file; mMimeType = mimeType; mConn.connect(); } }
使用方式:
File file = new File(path); MediaScanner scanner = new MediaScanner(activity); scanner.scanFile(file, null);
你就可以试试了,可以看到了。这里需要注意的是,如果这个文件夹下没有文件,这个文件夹是不会显示出来的,解决办法:在此目录下创建一个文件(什么文件都行,空文件也行),然后执行这个方法。
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android(安卓)组件化
- Android对ListView控件增删改查
- Android(安卓)帧动画 的实现
- 在Android中借助TensorFlow使用机器学习(译)
- Android(安卓)aar与 jar
- 将第三方apk变成系统apk
- ubuntu 12.04 build android的问题
- Master OpenCV with Pratical Computer Vision Projects——如何