学习Cursor取本地音频时遇到这个问题。在模拟器上可以取到歌曲,真机上娶不到。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
权限也加了就是不行了,查了好久才在一个评论上发现是高版本安卓(应该是6.0之后)需要动态获取权限。
//判断有无权限 if (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ //如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_EXTERNAL_STORAGE)){ //这里可以写个对话框之类的 }else { //申请权限,字符串数组内是一个或多个要申请的权限,1是申请权限结果的返回参数,在onRequestPermissionsResult可以得知申请结果 ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1); } }
加上这这个判断就可以了。萌新记录一下,大佬勿喷