旧权限无效
最近再写一个音乐播放器,所以要实现本机读取的功能,但是,我在 AndroidManifest.xml 文件中加入权限后总是停止运行报错,最后通过在网上搜索,发现原来是没有权限。
在 Android6.0 以上,也就是 23 以上,部分权限就需要手动申请了。所以除了在AndroidManifest.xml中加入权限外,还要进行判断和申请。
AndroidManifest.xml 代码文件:
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/
申请权限文件,建议放在 MainActivity.java 文件的 onCreate 方法下面:
MainActivity.java 代码文件
private static final int REQUEST_EXTERNAL_STORAGE = 1; private static String[] PERMISSIONS_STORAGE = { "android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //权限管理 try { //检测是否有写的权限 int permission = ActivityCompat.checkSelfPermission(this, "android.permission.WRITE_EXTERNAL_STORAGE"); if (permission != PackageManager.PERMISSION_GRANTED) { // 没有写的权限,去申请写的权限,会弹出对话框 ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE); } } catch (Exception e) { e.printStackTrace(); } initView(); }
运行后会报错一下,然后点击允许权限,就可以进行访问了。