工作上有个需求是要Intent开系统相册显示指定文件夹里面的图片,在stackoverflow上搜到代码本地运行有问题。问题就是在File.list()的时候返回的string[]是个null.
我把文件操作代码抽出来自己又跑了一次,仍然显示为空。代码如下
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File f=Environment.getExternalStorageDirectory();
Log.d("MSG", "absolute path "+ f.getAbsolutePath());
Log.d("MSG", "is dir "+ f.isDirectory());
Log.d("MSG", "is readable "+ f.canRead());
Log.d("MSG", "is writtable "+ f.canWrite());
String[] fileNames= f.list();
Log.d("MSG", fileNames==null?"fileNames is null":"fileNames is not null");
for(String string:fileNames){
Log.d("MSG", "file -- "+string);
}
}
}
并且在menifest里面声明了
<permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></permission>
<permission android:name="android.permission.WRITE_MEDIA_STORAGE"></permission>
两个权限。
输出如下


但是在MX3上(安卓4.2.1)上跑又一切正常

------解决方案--------------------
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
你权限加错了,是加这个