• 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 
    */
  • 相关阅读:
    mac安装numpy引发的一系列问题
    HttpWebRequest提交数据
    Codeigniter Setting 增强配置类
    WPF 创建无边框的圆角窗口
    wpf textbox只能输入数字,屏蔽中文输入
    Frame用navigate导航到新页面后导航条隐藏的方法
    WPF利用VisualTreeHelper遍历寻找对象的子级对象或者父级对象
    GitHub for Visual Studio使用讲解
    mvvmlight下passwordBox绑定的解决方法
    WPF+MVVM+EF示例1
  • 原文地址:https://www.cnblogs.com/adressian/p/10083513.html
Copyright © 2020-2023  润新知