Fragment权限问题的一个小坑
记录Fragment中关于权限问题的一个小坑。
调用ActivityCompat.requestPermissions()
方法,Activity.onRequestPermissionsResult()
回调正常,而Fragment.onRequestPermissionsResult()
不回调。
StackOverflow上找了两篇帖子
- how-to-check-permission-in-fragment
- request-runtime-permissions-from-v4-fragment-and-have-callback-go-to-fragment
给出的答案都是这样:
- 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