tvankith
tvankith

Reputation: 331

ActivityCompat.checkSelfPermission cannot resolve method

I am getting same error at ActivityCompat.checkSelfPermission that is cannot resolve that method after many times. I have already tried many other solution on Internet and stackoverflow.please help me.thanks in advance

import android.support.v4.app.ActivityCompat;
/*    
.
.
.
*/


 public boolean PERMISSIONSRECORD_AUDIO() {
    int MY_PERMISSIONS_REQUEST_RECORD_AUDIO = 1;
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
            != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions`enter code here`(this, new String[]{Manifest.permission.RECORD_AUDIO}, strong textMY_PERMISSIONS_REQUEST_RECORD_AUDIO);
    }
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
            != PackageManager.PERMISSION_GRANTED){return false;}
    return true;

}                               

build.gradle is as follows

    android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
    applicationId "first.findphone"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner   "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    android.defaultConfig.vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "com.android.support:support-core-utils:26.0.2"
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'

})
compile 'com.android.support:support-v4:26.0.2'
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:design:26.0.2'
compile 'com.android.support:support-vector-drawable:26.0.2'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-crash:10.0.1'
compile 'com.google.firebase:firebase-ads:10.0.1'
testCompile 'junit:junit:4.12'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.2'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.2'
}

Upvotes: 0

Views: 5436

Answers (1)

RaffaD
RaffaD

Reputation: 361

Try this:

1) Create method checkPermissionRecordAudio()

public boolean checkPermissionRecordAudio(){
        if (ContextCompat.checkSelfPermission(this.context,
                android.Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED)
            return false;
    return true;
}

2) Create method requestPermission()

public void requestPermission(){
        if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) this.context,android.Manifest.permission.RECORD_AUDIO)) {

            AlertDialog.Builder builder = new AlertDialog.Builder(this.context);
            builder.setMessage("Enable permission record audio")
                    .setTitle("Message")
                    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            request();
                        }
                    })
                    .setNegativeButton("No", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {

                        }
                    });
            AlertDialog dialog = builder.create();
            dialog.show();
        } else {
            request();
        }
    }

3) method request()

private void richiedi(){
        ActivityCompat.requestPermissions((Activity) this.context,
                new String[]{android.Manifest.permission.RECORD_AUDIO},
                MY_PERMISSIONS_REQUEST_RECORDAUDIO);
    }

4) In the end override onRequestPermission() for handle the request

@Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case RequestPermission.MY_PERMISSIONS_REQUEST_RECORDAUDIO: {
                // If request is cancelled, the result arrays are empty.
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//permission is enable, do something
                } else {
                    //permission not enable
                }

            }
        }
        super.onRequestPermissionsResult(requestCode,permissions,grantResults);
    }

Upvotes: 3

Related Questions