I have applied multiple code but it\'s show me checkSelfPermission() and shouldShowRequestPermissionRationale methods not exits, please help me..
I used brodcast rec
Use the following method:
public boolean checkPermissionSMS(final Context context, final String[] PERMISSIONS, final int Requestcode) {
int currentApiversion = Build.VERSION.SDK_INT;
if (currentApiversion >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context, Manifest.permission.READ_SMS)) {
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
alertBuilder.setCancelable(true);
alertBuilder.setTitle("Permission necessary");
alertBuilder.setMessage("Read SMS permission is necessary");
alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//in fragment
requestPermissions(PERMISSIONS,Requestcode);
//in activity
ActivityCompact.requestPermissions(YourActivity.this,PERMISSIONS,Requestcode);
}
});
AlertDialog alert = alertBuilder.create();
alert.show();
} else {
//in fragment
requestPermissions(PERMISSIONS,Requestcode);
//in activity
ActivityCompact.requestPermissions(YourActivty.this,PERMISSIONS,Requestcode);
}
return false;
} else
return true;
} else
return true;
}
and then in onrequestPermissionresult:
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==100)
{
if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED)
{
//do your functionality
}
}
}
and call the method like this:
checkPermissionSMS(context,new String[]{Manifest.permission.READ_SMS},100);
when you request permission like this:
requestPermissions(PERMISSIONS,Requestcode);
then the method onRequestPermissionResult is searched in the calling Fragment
when you request permission like this:
ActivityCompact.requestPermissions(YourActivity.this,PERMISSIONS,Requestcode);
then the method onRequestPermissionREsult is searched in the calling activity.