一个月没有更新内容,因为想要实践一下自己的理论知识,于是参加了一个软件类比赛,选题为移动设备之间的文件互传。
不得不说,实践的确是锻炼解决问题能力的最好办法。 遇到了很多自己在一般demo中,并没有发现的问题,并且学习很多新的知识。
准备将这个Android实例的开发过程记录。
软件功能:
- 各类型文件的快速访问
- 实现手机的文件的快速分享
- 通过电脑对于手机的文件访问
主要技术:
1.文件阅览:
已安装APK软件:
通过packageManager这个用于管理应用程序包,便能获取已安装程序的许多相应信息。具体到软件中的实现参考了 郭霖 公众号中推送的这篇仿QQ获取手机中的APK并分享。
多媒体文档以及office文档:通过MediaStore的方式,根据相应文件类型的Uri来进行查找。MediaStore是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。(MediaStore相应基础知识)。
可以通过相应的SQL语句对数据进行查询。如music则传入
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
;
例PPT则为
MediaStore.Files.getContentUri("external"),type
type为查询得的MIME类型
MediaStore.Files.FileColumns.MIME_TYPE==application/mspowerpoint
在按上面说明的Cursor,定义一个总的读取数据的方式。
public synchronized List<TFile> getMediaFiles(Activity cxt , Uri uri,String select) { //TFile 为一个总的文件管理类,包含文件的信息
Cursor mCursor = cxt.managedQuery(
uri,
new String[] {MediaStore.Audio.Media.DATA}, select,
null, " date_modified desc");
cxt.startManagingCursor(mCursor);
int count = mCursor.getCount();
if(c