无法在 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 文档中复制并粘贴了代码。
错字在文档中,因此如果您从那里复制并粘贴代码。你会得到这个。 :)
我在 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 文档中复制并粘贴了代码。
错字在文档中,因此如果您从那里复制并粘贴代码。你会得到这个。 :)