`
万般皆散
  • 浏览: 17283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

访问android所有可以使用的外接设备

 
阅读更多

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

 

 

/**

 * @title 外接设备工具类

 */

 

publicclassDeviceUitl{

 

/**

* 获取所有的外接设备目录

* @return

*/

publicstaticList<String>getDeviceFiles(){

List<Partitions>  partitionList=getPartitions();//获得挂载点列表

List<String>devicePathList=newArrayList<String>();

 

if(partitionList!=null&&partitionList.size()>0){//有挂载点

 

FilemountsFile=newFile("/proc/mounts");

 

if(mountsFile.exists()&&mountsFile.isFile()&&mountsFile.canRead()){

BufferedReaderreader=null;

        try {

            reader=newBufferedReader(newFileReader(mountsFile));

            List<String> devList = new ArrayList<String>();

            String tempString = null;

            while ((tempString = reader.readLine()) != null) {

                if (tempString.startsWith("/dev/block/vold/")) {

                devList.add(tempString);

               

}

            }

            for (String strs : devList) {

String[] args = strs.split(" ");

if (args!=null && args.length>2) {

if(isThePartitionPath(partitionList,args[0])){

devicePathList.add(args[1]);

}

}

}

            reader.close();

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            if (reader != null) {

                try {

                    reader.close();

                } catch (IOException e1) {

                }

            }

        }

}

}

 

       returndevicePathList;

}

 

/**

* 验证该挂载点是否是移动设备

* @param partitionList 移动设备挂载点列表

* @param point 挂载点

* @return

*/

privatestaticbooleanisThePartitionPath(List<Partitions>partitionList,Stringpoint){

booleanisPartition=false;

if(partitionList!=null&&point!=null){

for(Partitionsp:partitionList){

if(point.endsWith(p.getMajor()+":"+p.getMinior())){

isPartition=true;

break;

}

}

}

returnisPartition;

}

 

 

/**

* 获取外接设备挂载点

* @return

*/

publicstaticList<Partitions>getPartitions(){

 

FilepartitonsFile=newFile("/proc/partitions");

List<Partitions>partitionList=newArrayList<Partitions>();

 

if(partitonsFile.exists()&&partitonsFile.isFile()){

List<String>lineList=newArrayList<String>();

        BufferedReaderreader=null;

        try {

            reader=newBufferedReader(newFileReader(partitonsFile));

            String tempString = null;

            while ((tempString = reader.readLine()) != null) {

                lineList.add(tempString);

//                Log.d("--------partitions tempString:"+tempString);

            }

            reader.close();

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            if (reader != null) {

                try {

                    reader.close();

                } catch (IOException e1) {

                e1.printStackTrace();

                }

            }

        }

       

        for (String line : lineList) {

String[]strs=line.trim().split(" ");

Partitionspartitions=newPartitions(); 

for (int i = 0; i < strs.length; i++) {

if (!"".equals(strs[i])) {

try {

if(partitions.getMajor()==null){

partitions.setMajor(Integer.valueOf(strs[i]));

continue;

}

if(partitions.getMinior()==null){

partitions.setMinior(Integer.valueOf(strs[i]));

continue;

}

if(partitions.getBlocks()==null){

partitions.setBlocks(Long.valueOf(strs[i]));

continue;

}

if(partitions.getName()==null){

partitions.setName(strs[i]);

continue;

}

} catch (Exception e) {

//e.printStackTrace();

continue;

}

 

}

}

//名称不能为空,不能是mtd

if(partitions.getName()!=null&&!partitions.getName().trim().equals("")&&!partitions.getName().startsWith("mtd")){

partitionList.add(partitions);

}

 

}

}

 

returnpartitionList;

}

 

 

 

/**

* @title 挂载点

*/

publicstaticclassPartitions{

privateIntegermajor;//父节点

privateIntegerminior;//分区节点

privateLongblocks;//容量

privateStringname;//名称

 

publicIntegergetMajor(){

returnmajor;

}

publicvoidsetMajor(Integermajor){

this.major=major;

}

publicIntegergetMinior(){

returnminior;

}

publicvoidsetMinior(Integerminior){

this.minior=minior;

}

publicLonggetBlocks(){

returnblocks;

}

publicvoidsetBlocks(Longblocks){

this.blocks=blocks;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name = name;

}

 

 

 

}

 

 

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics