package ee.ioc.phon.android.speak.activity; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; import android.support.v4.app.ActivityCompat; import ee.ioc.phon.android.speak.R; import ee.ioc.phon.android.speak.utils.Utils; public class PermissionsRequesterActivity extends Activity { private static final int PERMISSION_REQUEST_RECORD_AUDIO = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCompat.requestPermissions(PermissionsRequesterActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, PERMISSION_REQUEST_RECORD_AUDIO); } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case PERMISSION_REQUEST_RECORD_AUDIO: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Permission granted: just finish finish(); } else { // Permission not granted: explain the consequences and offer a link to the app settings Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.fromParts("package", getPackageName(), null)); Utils.getLaunchIntentDialog(this, getString(R.string.promptPermissionRationale), intent).show(); } break; } default: { break; } } } }