我有一个包含片段的Activity。我要求活动的联系方式如下:
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_CONTACTS}, REQUEST_CODE_PERMISSION);
从片段我正在请求相机权限:
requestPermissions(new String[] {Manifest.permission.CAMERA}, REQUEST_CODE_PERMISSION);
我对片段和活动都有onRequestPermissionsResult
方法。问题是,即使我请求片段的许可,也会调用活动中的onRequestPermissionsResult
。片段中的onRequestPermissionsResult
不会被调用(但如果我从活动中删除onRequestPermissionsResult
则会调用它)。有没有办法适用onRequestPermissionsResult
方法?
答案 0 :(得分:1)
在覆盖{
"value": "SE Asia Standard Time",
"abbr": "SAST",
"offset": 7,
"isdst": false,
"text": "(UTC+07:00) Bangkok, Hanoi, Jakarta",
"utc": [
"Antarctica/Davis",
"Asia/Bangkok",
"Asia/Hovd",
"Asia/Jakarta",
"Asia/Phnom_Penh",
"Asia/Pontianak",
"Asia/Saigon",
"Asia/Vientiane",
"Etc/GMT-7",
"Indian/Christmas"
]
}
中的方法时,请务必致电super.onRequestPermissionsResult(...)
。
也就是说,解决此问题的另一种方法是手动通知您活动中的Activity
:
Fragment
..如果发送的@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);
}
}
}
是他们的,请让您的片段做出相应的操作。