最近想写一个可以传输文件的APP,并且可以把名称也传过去,因此打算通过Uri先获得文件路径,然后再根据路径调用getName()来获得文件名称,由于本人是新手,所以一直认为Uri跟文件路径一样,所以出现错误,后来上网查找,找到两篇感觉不错的文章:
转载:http://www.2cto.com/kf/201502/376975.html
http://www.apkbus.com/android-165027-1-1.html
当然其他网址也有好多类似这样的,具体内容就不说了,自己看吧,但是用里面的代码出现错误,使得程序崩了,后来经过调试,发现错误出现在:
cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
其原因如下:
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=25896, uid=10189 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
主要就是红色部分,大概意思就是需要一个READ_EXTERNAL_STORAGE权限,因此加上这句
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />就行了。
注释:本文给新手准备,希望大牛们多多指导。