package com.ptrprograms.androidpermissionsdemo; import android.Manifest; import android.app.Activity; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends Activity { private final int REQUEST_CODE_SOME_FEATURES_PERMISSIONS = 0; private final int REQUEST_CODE_ALL = 42; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int hasLocationPermission = checkSelfPermission( Manifest.permission.ACCESS_FINE_LOCATION ); int hasSMSPermission = checkSelfPermission( Manifest.permission.SEND_SMS ); List<String> permissions = new ArrayList<String>(); if( hasLocationPermission != PackageManager.PERMISSION_GRANTED ) { permissions.add( Manifest.permission.ACCESS_FINE_LOCATION ); } if( hasSMSPermission != PackageManager.PERMISSION_GRANTED ) { permissions.add( Manifest.permission.SEND_SMS ); } if( !permissions.isEmpty() ) { requestPermissions( permissions.toArray( new String[permissions.size()] ), REQUEST_CODE_SOME_FEATURES_PERMISSIONS ); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch ( requestCode ) { case REQUEST_CODE_SOME_FEATURES_PERMISSIONS: { for( int i = 0; i < permissions.length; i++ ) { if( grantResults[i] == PackageManager.PERMISSION_GRANTED ) { Log.d( "Permissions", "Permission Granted: " + permissions[i] ); } else if( grantResults[i] == PackageManager.PERMISSION_DENIED ) { Log.d( "Permissions", "Permission Denied: " + permissions[i] ); } } } break; default: { super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } } }