无法在 Android Studio 中覆盖 onRequestPermissionsResult

Can't override onRequestPermissionResult in AndroidStudio

我在 tutorial(-> Android 开发人员指南) 中找到了下面的代码。我复制了代码并做了一些小改动,比如选择我的应用程序所需的权限。这里的问题是我无法如教程中所示覆盖 onRequestPermissionResult。每当我尝试时,IDE 状态为 Method does not override method from its superclass

超类??如 documentation 中所示,方法 onRequestPermissionResult 是接口 ActivityCompat.OnRequestPermissionsResultCallback 的一部分。因此,我尝试实现该接口并进行了以下更改:public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback

这并没有解决问题...

package com.example.test1;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity 
    implements  ActivityCompat.OnRequestPermissionsResultCallback{

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if(ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
            != PackageManager.PERMISSION_GRANTED){
            Log.d(TAG, "Permission not granted");

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.RECORD_AUDIO)){
                Log.d(TAG, "some explanation is required??? wut");
            } else {
                Log.d(TAG, "requests permission");
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.RECORD_AUDIO}, 1);
            }
        }
    }

    @Override
    public void onRequestPermissionResult (int requestCode,
                                          String[] permissions,
                                          int[] grantResults){
        switch (requestCode) {
            case 1: {
                if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    Log.d(TAG, "permission was granted");
                } else {
                    Log.d(TAG, "permission was denied");
                }
            }
        }
    }
}


@Michael - 谢谢你,我原地转了 20 分钟,遇到了同样的问题,只是因为我从 Android 文档中复制并粘贴了代码。

错字在文档中,因此如果您从那里复制并粘贴代码。你会得到这个。 :)