【问题标题】:onRequestPermissionsResult is not called in Fragment在 Fragment 中未调用 onRequestPermissionsResult
【发布时间】:2017-11-08 10:00:34
【问题描述】:

我有一个CompatActivityv4CompatFragment。我正在尝试从Fragment 请求permissions 并在Fragment 中获得结果。

这是我的代码:这就是我请求权限的方式:

    private void checkSmsPermissions() {
        requestPermissions(new String[] {Manifest.permission.RECEIVE_SMS}, REQUEST_CODE_PERMISSION_RECEIVE_SMS);
   }

这就是我试图获得结果的方式,但我的代码从未进入此方法:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode) {
        case REQUEST_CODE_PERMISSION_RECEIVE_SMS:
            //do something
            break;
    }
}

我的错误是什么?

【问题讨论】:

  • 您是否也在清单中添加了此权限
  • 你试过 FragmentCompat.requestPermissions() 吗?
  • 在您的活动中覆盖 onRequestPermissionResult。这是处理结果的地方。您可以在 Fragment 中创建一个函数并在活动的 onRequestPermissionResult 中调用它
  • 您是否在 Android Manifest 中声明了权限?在请求任何运行时权限之前,您应该检查第一个所需的权限是否已被授予,如果没有,则请求它。
  • @Ratilal Chopda,是的,我做到了。

标签: java android android-fragments permissions


【解决方案1】:

好的,我发现我的问题隐藏在哪里。

我有一个BaseActivity,并从中扩展了所有其他活动。 BaseActivity 有一个onRequestPermissionsResult 方法而不调用super

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 2017-03-06
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多