Skip to content

Instantly share code, notes, and snippets.

@Binary-Finery
Created June 28, 2018 20:17
Show Gist options
  • Save Binary-Finery/f168519ecff182754afda58557bf3234 to your computer and use it in GitHub Desktop.
Save Binary-Finery/f168519ecff182754afda58557bf3234 to your computer and use it in GitHub Desktop.
requesting multiple permissions [easy]
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.widget.Toast;
import com.spencerstudios.mylocation.R;
public class LauncherActivity extends AppCompatActivity {
// be sure to include all of the required permissions in your apps manifest,
// for example:
// <uses-permission android:name="android.permission.SEND_SMS" />
private final static int PERMISSIONS_REQUEST_CODE = 100;
private final static String[] PERMISSIONS = {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.SEND_SMS,
Manifest.permission.READ_CONTACTS
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
requestPermissions();
}
private void requestPermissions() {
for (String PERMISSION : PERMISSIONS) {
if (ActivityCompat.checkSelfPermission(this, PERMISSION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSIONS_REQUEST_CODE);
break;
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
boolean allPermissionsGranted = true;
if (requestCode == PERMISSIONS_REQUEST_CODE) {
if (grantResults.length > 0) {
for (int grantResult : grantResults) {
if (grantResult != PackageManager.PERMISSION_GRANTED) {
allPermissionsGranted = false;
break;
}
}
}
}
if (!allPermissionsGranted) {
// not all permissions have been granted, so let's request them again...
// note: Android will only request permissions that haven't already been granted,
// it will not request granted permissions again
requestPermissions();
} else {
// all permissions have been granted, as a token of our appreciation,
// lets display a toast and continue with our app
Toast.makeText(getApplicationContext(), "Thanks", Toast.LENGTH_LONG).show();
letTheGamesBegin();
}
}
private void letTheGamesBegin() {
//todo: blah blah
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment