首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在每次发送短信时修复“显示权限对话框”?

如何在每次发送短信时修复“显示权限对话框”?
EN

Stack Overflow用户
提问于 2019-09-19 07:42:10
回答 1查看 55关注 0票数 0

我想通过android-应用程序发送短信,但是每次发送消息之前都会显示许可对话框,在第一次请求许可后,我应该发送一条没有对话框显示的消息。

我的android应用程序运行在mi-8上,目标SDK-版本是29。

代码语言:javascript
复制
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS}, 3);
} else if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE}, 4);
} else {
    sendMsg();
}

我希望权限对话框在第一次请求权限后发送消息时没有显示,而是每次发送消息时实际显示对话框。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-19 08:06:16

使用此函数检查您是否已给予许可,如果您已按要求给予许可,它将返回真标志。

检查这边

代码语言:javascript
复制
   private boolean checkAndRequestPermissions(){

        //add as much as permission you need
        int readSMS = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS);
        int sendSms = ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS);

        List<String> listPermissionsNeeded = new ArrayList<>();

        if (readSMS != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.READ_SMS);
        }
        if (receiveSms != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(Manifest.permission.RECEIVE_SMS);
        }
        if (!listPermissionsNeeded.isEmpty()) {
            ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]),
                    REQUEST_ID_MULTIPLE_PERMISSIONS);
            return false;
        }
        return true;
    }

通过这种方式检查

代码语言:javascript
复制
 if (checkAndRequestPermissions()){
        sendMsg();
    }else{
      //do what you want  
    }

不需要用硬编码的方式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58006074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档