Reputation: 331
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
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