Android手机获取权限问题

  今天在这里对Android手机权限问题给出了一个小示例,如果读者看了以后觉得内容存在什么问题,请提出您宝贵的建议和意见。

  以下就是Android获取手机权限的方法,这里使用的例子是使用的”android.permission.READ_CONTACTS“权限。

  第1步:添加权限

    <!--1.Manifest文件中添加权限-->
    <uses-permission android:name="android.permission.READ_CONTACTS"/>

  第2步:查看权限状态

  //2.检查所需权限的授权状态

  int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS);

  //3.判断所需权限是否已授权

  if (permissionCheck != PackageManager.PERMISSION_GRANTED){

  //4.若所需权限未授权,请求授权

  ActivityCompat.requestPermissions(this,newString[]{Manifest.permission.READ_CONTACTS},REQUEST_READ_CONTACTS);

  }else {

                   //读取联系人的方法

            readContacts();

         }

      第3步:根据授权结果,执行相应的操作

     //5.授权结果,通过ActivityCompat.onRequsetPermissionsResult回调授权结果,判断是否授权

      @Override

      public void onRequestPermissionsResult(intrequestCode,@NonNullString[] permissions,@NonNullint[] grantResults) {

            super.onRequestPermissionsResult(requestCode, permissions, grantResults);

            switch (requestCode){

                case REQUEST_READ_CONTACTS:

                   if ((grantResults.length>0) && grantResults[0] == PackageManager.PERMISSION_GRANTED){

                     //读取联系人的方法                    

                     readContacts();

                    }

                   break;

                default:

                   break;

                     }

            }


  备注:

               1:以上内容中使用的方法

    //读取联系人的方法

    private void readContacts() {

          //读取联系人

          Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);

          SimpleCursorAdapter testAdapter = new SimpleCursorAdapter(this, R.layout.list_item, cursor,newString[

          {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER},

          new int[]{R.id.list_name,R.id.list_phone});

          mListv = (ListView) findViewById(R.id.mlistv);

          mListv.setAdapter(testAdapter);

                                        }


    

   2:ActivityCompat.requestPermissions方法在被调用后,系统会弹出一个权限申请框,这个选择框无法更改:
     如下图所示:   

此时,activity会调用onPause()方法,用户做了选择之后,对话框消失,onResume()方法又执行。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值