android识别U盘以及读写文件的方法

  

android中读写文件的需求地方很多,其中就包括了识别U盘,弹出U盘,读写U盘的文件等。

  

那么,如何实现这些需求呢& # 63;笔者简单的说下:

  

  

识别U盘的方法只要是用到了2个android官方类。

  

它们分别为:ContentResolver和AsyncQueryHandler。表现为前者提供内容给后者读取。

  

<强>作法如下:

  

<强> 1)获取状态并遍历

        contentObserver=new contentObserver (mHandler) {   @Override   公共空间>   可运行=new runnable () {   @Override   公共空间run () {   mAsyncQueryHandler。startQuery(令牌,null, uri,投影、选择、selectionArgs,   orderBy);   }   };   之前      

<强> 2)回调数据给UI

        mAsyncQueryHandler=new AsyncQueryHandler (mCR) {   @Override   保护空白>   保护静态最终类QueryArg {   公共Uri Uri;   公共String[]投影;   公共字符串的选择;   公共String [] selectionArgs;   公共字符串orderBy;   公共ContentObserver ContentObserver;   公共运行的可运行;   公共对象饼干;   }   之前      

  

弹出U盘的方法很简单,跟删除数据库数据基本类似。

  

<强> 1)

        ContentResolver cr=mContext.getContentResolver ();      

<强> 2)

        ContentValues值=new ContentValues ();   values.put (MediaStore.MediaDevice。FIELD_VALID、假);   cr.update (MediaStore.MediaDevice。CONTENT_URI、价值观,selectionArgs);      

如此就可弹出U盘。注意:在自己软件中弹出U盘仅改变此软件的U盘状态,对系统无影响。主要原因在于更新时提供的Uri仅影响当前包名的内容提供者。

  

要对自身软件在弹出状态下不重新插拔的前提下,实现重加载笔者暂时没看到有相关方法,若有请告知,谢。

  

  

在前面1中有识别U盘的方法,其中在遍历的时候可以自定义一个回调。

        QueryNotify (Uri Uri,光标指针)      

当然参数的个数或者回调的名字可以自定义,笔者在这里有2个参数,第一个主要用于区分类型,第二个作用在于获取数据。

  

在这里已经有游标,因此也不是什么难事了,在这里也不bb如何读数据了。

  

简单的说下如何写数据。

  

写数据的方法跟弹出U盘大似相同,都是通过

        ContentResolver & lt;以前的名字=按搿眂lass=癶tml”祝辞ContentValues      

这两个类来实现。

        mContext.getContentResolver () .update (   MediaStore.getContentUri (MediaStore.MediaBase。TABLE_NAME info.id)值,   “_id="、新String[]{信息。id + " "});   之前      

如此,就达到了实现更改文件属性的需求了。

  

如此,大致上就可以完成大致上关于U盘读写识别相关的需求,当然此文也是浅尝辄止,许许多多的细节都要自己去尝试并完善。

  

以上这篇android识别U盘以及读写文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

android识别U盘以及读写文件的方法