zoukankan      html  css  js  c++  java
  • Android基础之6.0系统以上的权限分配

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //检查当前权限(若没有该权限,值为-1;若有该权限,值为0)
            int hasReadExternalStoragePermission = ContextCompat.checkSelfPermission(getApplication(),Manifest.permission.READ_EXTERNAL_STORAGE);
            Log.e("PERMISION_CODE",hasReadExternalStoragePermission+"***");
            if(hasReadExternalStoragePermission== PackageManager.PERMISSION_GRANTED){
                obtainMediaInfo();
            }else{
                //若没有授权,会弹出一个对话框(这个对话框是系统的,开发者不能自己定制),用户选择是否授权应用使用系统权限
                ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);
            }
    
        }
    
        //用户选择是否同意授权后,会回调这个方法
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            if(requestCode==1){
                if(permissions[0].equals(Manifest.permission.READ_EXTERNAL_STORAGE)&&grantResults[0]==PackageManager.PERMISSION_GRANTED){
                    //用户同意授权,执行读取文件的代码
                    obtainMediaInfo();
                }else{
                    //若用户不同意授权,直接暴力退出应用。
                    // 当然,这里也可以有比较温柔的操作。
                    finish();
                }
            }
        }
    
        //将之前获取音乐信息的代码单独封装到了一个方法里面
        private void obtainMediaInfo() {
            Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
            cursor.moveToFirst();
            do {
                String title = cursor.getString(cursor.getColumnIndex("title"));
                Log.e("TITLE",title);
            }while (cursor.moveToNext());
        }
    }
    /*--------------------- 
    代码作者:3052world 
    来源:CSDN 
    原文:https://blog.csdn.net/jasper_success/article/details/78836899 
    */
  • 相关阅读:
    loj#6433. 「PKUSC2018」最大前缀和(状压dp)
    PKUWC2019游记
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/adressian/p/10083513.html
Copyright © 2011-2022 走看看