android USB读取问题?

问题描述

我使用android studio开发一个APP,要求读取U盘内的图片并显示,但是我能获取到U盘的路径,在该路径下寻找图片是空的,但是U盘内确实有图片,且为.jpg格式,但就是读取不到,我用了FileInputStream等一些方法,返回的都是空,所以我想知道是什么原因?且如何解决?

问题出现的环境背景及自己尝试过哪些方法

FileInputStream,listfile遍历等

相关代码

粘贴代码文本(请勿用截图)

File root = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
    //Toast.makeText(this, "大于", Toast.LENGTH_SHORT).show();
    root = new File(getUSBPath(MainActivity.this)+"/"+"oip-c.jpg");
    //root = new File("/storage");
}
if (!root.exists()) {
    Toast.makeText(this, "未检测到U盘根目录", Toast.LENGTH_SHORT).show();
}else {
    Toast.makeText(this, "检测到U盘根目录", Toast.LENGTH_SHORT).show();
    textView.setText(String.valueOf(root));
    Bitmap bitmap = getLoacalBitmap(String.valueOf(root));
    if (bitmap != null){
        imageView.setImageBitmap(bitmap);
    }else {
        Toast.makeText(this, "没图片", Toast.LENGTH_SHORT).show();
    }
}
// 过滤出png和jpg格式
File[] imageFiles = root.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        //textView.setText(name);
        return name.endsWith(".png") || name.endsWith(".jpg");
        //return true;
        //return false;
    }
});
if (imageFiles == null) {
    Toast.makeText(this, "未检测到图片文件", Toast.LENGTH_SHORT).show();
    return;
}

你期待的结果是什么?实际看到的错误信息又是什么?

能读取到图片并正常显示

阅读 3.2k
1 个回答

根据你提供的代码和描述,可能有以下几个原因导致无法读取到U盘内的图片:

  1. 权限问题:在AndroidManifest.xml文件中添加读取外部存储权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. U盘路径获取错误:确保通过getUSBPath(MainActivity.this)方法获取到的U盘路径是正确的,可以在Log中打印出来进行验证。
  2. 文件路径拼接错误:在拼接文件路径时,建议使用File.separator代替"/",以确保在不同系统上的路径正确。
root = new File(getUSBPath(MainActivity.this) + File.separator + "oip-c.jpg");
  1. 图片加载问题:在使用getLoacalBitmap(String.valueOf(root))方法加载图片时,可以通过以下方法来加载:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(root.getAbsolutePath(), options);
  1. 文件过滤问题:在过滤文件时,确保图片文件名的大小写正确,并且确认U盘内确实存在以".png"或".jpg"结尾的图片文件。

如果仍然无法解决问题,建议使用调试工具查看具体报错信息。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题