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 
    */
  • 相关阅读:
    css3 动画
    jQuery toast 淡入淡出提示
    JavaScript事件——拖拉事件
    Vue -- element-ui 限制只能输入number
    css 移动端页面,在ios中,margin-bottom 没有生效
    django 快速搭建blog
    python 正则表达式口诀
    [转]python os模块 常用命令
    【转】scapy 构造以太网注入帧
    【转】关于Scapy
  • 原文地址:https://www.cnblogs.com/adressian/p/10083513.html
Copyright © 2011-2022 走看看