Fragment权限问题的一个小坑

记录Fragment中关于权限问题的一个小坑。

调用ActivityCompat.requestPermissions()方法,Activity.onRequestPermissionsResult()回调正常,而Fragment.onRequestPermissionsResult()不回调。

StackOverflow上找了两篇帖子

给出的答案都是这样:

  • fragment v4 中需要使用 Fragment.requestPermission(String[], int);
  • 而Activity中需要使用 AppCompat.requestPermission(Activity, String[], int)

按给出的答案,将ActivityCompat.requestPermissions()修改成Fragment.requestPermission(String[], int);Activity.onRequestPermissionsResult()Fragment.onRequestPermissionsResult()都能正常回调。

这种设计还真是坑啊!

参考

onRequestPermissionsResult not called on Fragments in Android – CODERZHEAVEN