获取USB挂载路径

/**
     * 获取usb挂载路径
     * @return
     */
    private String usbMountedPath(){
        File file = new File("/proc/mounts");
        try(FileInputStream inputStream = new FileInputStream(file);
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);){
            String line ;
            ArrayList<String > list = new ArrayList<>();
            while ((line = bufferedReader.readLine()) != null){
                if(line.contains("vfat")){
                    list.add(line);
                }
            }
            if(list.size() > 0){
                line = list.get(list.size() - 1);
                if(line.contains("vendor/factory")){
                    return null;
                }
                line = "/mnt" + line.split("/mnt")[1];
                line = line.split("vfat")[0];
                return line;
            }else {
                Log.i("yangyu","no ota mounted");
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

 

usb状态广播接收

/**
     * usb状态监听广播接收器
     */
    private BroadcastReceiver usbReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if("android.hardware.usb.action.USB_DEVICE_ATTACHED".equals(action) || "android.intent.action.MEDIA_MOUNTED".equals(action)){
                Log.i("yangyu","usb mounted");
            }else if("android.hardware.usb.action.USB_DEVICE_DETACHED".equals(action) || "android.intent.action.MEDIA_EJECT".equals(action)){
                Log.i("yangyu","usb unmounted");
            }
        }
    };

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考