我已经进行了调试并在onRequestPermissionsResult()方法中设置了断点,但它从未进入该方法。
首先调用此方法:
private void askForPermission() {
String[] permissions = new String[]{Manifest.permission.SEND_SMS};
ActivityCompat.requestPermissions(getActivity(), permissions, PERMISSIONS_CODE);
}
然后我的回调函数看起来像这样:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSIONS_CODE) {
for (int i = 0; i < permissions.length; i++) {
String permission = permissions[i];
int grantResult = grantResults[i];
if (permission.equals(Manifest.permission.SEND_SMS)) {
if (grantResult == PackageManager.PERMISSION_GRANTED) {
onPPSButtonPress();
} else {
requestPermissions(new String[]{Manifest.permission.SEND_SMS}, PERMISSIONS_CODE);
}
}
}
}
}
有人遇到类似的问题吗? 感谢任何关于此问题的帮助。 谢谢
Fragment.requestPermissions()
时,实际上是父 Activity 接收到了onRequestPermissionsResult()
回调。(这是在支持库版本23.3.0中的情况) - Someone Somewhere