我正在更新我们的应用程序以使用新的M运行时权限系统. 除了onRequestPermissionsResult()之外,其他都可以工作.我需要判断一下按钮按下的权限,如果成功了,就发一条短信.当我授予执行此操作的权限时,对话框将关闭,但直到我再次按下该按钮,它才会触发发送文本.

我已经在onRequestPermissionsResult()方法中调试并设置了断点,但它从来没有进入.

首先调用此方法:

    private void askForPermission() {
    String[] permissions = new String[]{Manifest.permission.SEND_SMS};
    ActivityCompat.requestPermissions(getActivity(), permissions, PERMISSIONS_CODE);
}

然后我的回调如下所示:

    @Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == PERMISSIONS_CODE) {
        for (int i = 0; i < permissions.length; i++) {
            String permission = permissions[i];
            int grantResult = grantResults[i];

            if (permission.equals(Manifest.permission.SEND_SMS)) {
                if (grantResult == PackageManager.PERMISSION_GRANTED) {
                    onPPSButtonPress();
                } else {
                    requestPermissions(new String[]{Manifest.permission.SEND_SMS}, PERMISSIONS_CODE);
                }
            }
        }
    }
}

有没有人遇到过类似的问题? 感谢您在这方面的任何帮助. 谢谢

推荐答案

这个问题实际上是由嵌套碎片引起的.

他正在做一些低级的事情,比如位切换,以使其正常工作,所以我不太确定实际的最终解决方案

Java相关问答推荐

那么比较似乎不是词典学的,尽管doctor 这么说

具有额外列的Hibert多对多关系在添加关系时返回NonUniqueHealthExcellent

Oracle DUAL表上使用DDL时jOOQ问题的解析'

了解Android Studio中的调试器输出

neo4j java驱动程序是否会在错误发生时自动回滚事务?

基本时态运算的ISO-8601周数据表示法

通过移动一个类解决了潜在的StubbingProblem.它怎麽工作?

自定义批注的外推属性值

如何在Spring Java中从数据库列中获取JSON中的具体数据

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

在macOS上读取文件会导致FileNotFound,即使文件存在(并且具有权限)

如何在JUNIT测试中覆盖ExecutorService?

Java在操作多个属性和锁定锁对象时使用同步和易失性

泛型与泛型问题的完美解决方案?

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

如何制作回文程序?

ResponseEntity.控制器截断响应的JSON部分

java构造函数中的冻结操作何时发生?

如何组合Mono和Flux

UuidGenerator Bean 类型不匹配?