简体   繁体   English

onRequestPermissionsResult方法不会从其超类重写方法吗?

[英]onRequestPermissionsResult method does not override method from its superclass?

There doesn't seem to be a onRequestPermissionsResult method in Activity.class or AppCompatActivity.class that I can implement. 我可以实现的Activity.classAppCompatActivity.class中似乎没有onRequestPermissionsResult方法。

在此处输入图片说明

MainActivity.java : MainActivity.java

package com.example.ccccccc;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.io.File;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

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

    @Override
    protected void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

    }
}

build.gradle : build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    defaultConfig {
        applicationId "com.example.ccccccc"
        minSdkVersion 22
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:22.2.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:design:22.2.0'
    implementation 'com.google.zxing:core:3.3.0'
    implementation 'com.google.zxing:javase:3.3.0'
}

First , onRequestPermissionsResult is only available from support library 24.1.0 under ActivityCompat.OnRequestPermissionsResultCallback. 首先onRequestPermissionsResult仅可从ActivityCompat.OnRequestPermissionsResultCallback下的支持库24.1.0

So you need to modify your build.gradle with minimum targetSdkVersion 24 then add implementation 'com.android.support:appcompat-v7:24.1.0' to your dependencies. 因此,您需要使用最低targetSdkVersion 24修改build.gradle ,然后将implementation 'com.android.support:appcompat-v7:24.1.0'添加到您的依赖项中。

Second , this is incorrect: 其次 ,这是不正确的:

@Override
protected void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

}

this is correct: 这是对的:

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

}

Notice that you need public access modifier instead protected . 请注意,您需要public访问修饰符而不是protected

The method was added to the support library with version 24.1. 该方法已添加到版本24.1的支持库中。 You are using version 22. 您正在使用版本22。

Please update your support library > 24.1.0 , because of onRequestPermissionsResult method available from 24.1.0 onwards 由于onRequestPermissionsResult方法从24.1.0开始可用,因此请更新您的支持库> 24.1.0

so you have to update your build.gradle 所以你必须更新build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.ccccccc"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.google.zxing:core:3.3.0'
    implementation 'com.google.zxing:javase:3.3.0'
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM