【发布时间】:2017-11-08 10:00:34
【问题描述】:
我有一个CompatActivity 和v4CompatFragment。我正在尝试从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