当前位置: 首页 > 知识库问答 >
问题:

Android onRequest estPermissionsResult仅在活动上调用,而不是在片段上调用

郭辉
2023-03-14

我有一个包含片段的活动。我请求该活动给予以下联系许可:

ActivityCompat.request权限(this, new String[]{Manifest.permission.READ_CONTACTS},REQUEST_CODE_PERMISSION);

从片段中,我请求如下摄像头许可:

requestPermissions(新字符串[]{Manifest.permission.CAMERA},REQUEST\u code\u permission)

我在片段和活动上都有onRequest estPermissionsResult方法。问题是,即使我从片段中请求权限,也会调用活动中的onRequest estPermissionsResult。片段中的onRequest estPermissionsResult不会被调用(但如果我从活动中删除onRequest estPermissionsResult,它会被调用)。有没有什么方法可以适用onRequest estPermissionsResult方法


共有1个答案

陆宾白
2023-03-14

请务必调用super。onRequestPermissionsResult(…) 当您重写活动中的方法时。

也就是说,解决此问题的另一种方法是手动通知活动中的片段:

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

    final List<Fragment> fragments = getSupportFragmentManager().getFragments();
    if (fragments != null) {
        for (Fragment fragment : fragments) {
            fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

..如果发送的请求代码是他们的,只需让您的片段通过执行适当的操作来响应即可。

 类似资料:
  • 从v4.fragment请求运行时权限并让回调转到fragment?

  • 我在一个activity里有多个碎片。在一个按钮点击我开始一个新的片断,将它添加到backstack。我自然希望调用当前片段的方法和新片段的。但这并没有发生。 我所期待的是, 单击按钮时,LoginFragment将被替换为HomeFragment、LoginFragment的以及HomeFragment的将被调用 按下“上一步”时,将弹出HomeFragment并看到LoginFragment,

  • fragment类主活动/主活动如何限制我的主活动在从片段的最后一页返回到主活动时不返回到片段的最后一页,就像我有一个主活动,单击按钮该主活动会导致另外3个活动,其中一个活动有片段。片段的最后一页指向home activity,但当我在home activity上后退时,它再次将我引导到片段的最后一页,然后我再次按下back按钮,然后我的应用程序关闭

  • 在我的非活动类中,我请求了一个Fine location权限,但回调onRequestPermissionsResult“永远不会被调用”。现在我看到了一些与此相关的问题,但他们都认为请求是从活动或片段发出的,没有人考虑从非活动类发出请求。这是我的代码 这是onRequestPermissionResultCallback方法的实现 解决了:正如一些人提到的“activity”的onRequest

  • https://github.com/xxv/android-lifecycle显示在onStart活动之前调用片段onAttach、onCreateView和onActivityCreated。但是,我尝试记录这个: FirstFragment如下所示: 它印了这个: 主活动创建 主活动启动 第一个片段 第一片段创建 FirstFra0020 onCreateView 第一片段onActivit

  • 如何限制我的主要活动不返回片段的最后一页,一旦从片段的最后一页返回到主要活动,就像我有一个主活动一样,单击按钮,该主活动会导致另外3个活动,其中一个活动有片段。片段的最后一页指向home activity,但当我在home activity上后退时,它再次将我引导到片段的最后一页,然后我再次按下back按钮,然后我的应用程序关闭 我的主要活动课 公共类主页扩展应用程序活动{ } 我零星的寻呼机 公