Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SplashScreen extends AppCompatActivity {
- private static final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
- private static final int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_splash_screen);
- }
- @Override
- protected void onPostCreate(Bundle savedInstanceState) {
- super.onPostCreate(savedInstanceState);
- }
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- super.onWindowFocusChanged(hasFocus);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- if (hasFocus) {
- getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
- | View.SYSTEM_UI_FLAG_FULLSCREEN
- | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
- }
- }
- }
- private boolean checkPlayServices() {
- GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
- int resultCode = apiAvailability.isGooglePlayServicesAvailable(this);
- if (resultCode != ConnectionResult.SUCCESS) {
- if (apiAvailability.isUserResolvableError(resultCode)) {
- apiAvailability.getErrorDialog(this, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST)
- .show();
- } else {
- Log.i("Google Play", "This device is not supported.");
- }
- return false;
- }
- return true;
- }
- @Override
- protected void onResume() {
- super.onResume();
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
- // Marshmallow+
- askMultipleRuntimePermission();
- }else{
- //below Marshmallow
- //do something
- }
- }
- @TargetApi(Build.VERSION_CODES.M)
- public void askMultipleRuntimePermission(){
- List<String> permissionsNeeded = new ArrayList<String>();
- final List<String> permissionsList = new ArrayList<String>();
- if (!addPermission(permissionsList, Manifest.permission.ACCESS_FINE_LOCATION))
- permissionsNeeded.add("GPS");
- if (!addPermission(permissionsList, Manifest.permission.CAMERA))
- permissionsNeeded.add("Camera");
- if (!addPermission(permissionsList, Manifest.permission.CALL_PHONE))
- permissionsNeeded.add("Phone Call");
- if (!addPermission(permissionsList, Manifest.permission.WRITE_EXTERNAL_STORAGE))
- permissionsNeeded.add("Write File");
- if (!addPermission(permissionsList, Manifest.permission.READ_CONTACTS))
- permissionsNeeded.add("Read Contacts");
- if (!addPermission(permissionsList, Manifest.permission.RECORD_AUDIO))
- permissionsNeeded.add("Record Audio");
- if (permissionsList.size() > 0) {
- if (permissionsNeeded.size() > 0) {
- // Need Rationale
- // String message = "You need to grant access to " + permissionsNeeded.get(0);
- // for (int i = 1; i < permissionsNeeded.size(); i++)
- // message = message + ", " + permissionsNeeded.get(i);
- // showMessageOKCancel(message, new DialogInterface.OnClickListener() {
- // @Override
- // public void onClick(DialogInterface dialog, int which) {
- //
- // }
- // });
- requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
- REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
- return;
- }
- requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
- REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
- return;
- }
- else{
- //Do something here
- }
- }
- @TargetApi(Build.VERSION_CODES.M)
- private boolean addPermission(List<String> permissionsList, String permission) {
- if (ActivityCompat.checkSelfPermission(this,permission) != PackageManager.PERMISSION_GRANTED) {
- permissionsList.add(permission);
- // Check for Rationale Option
- if (!shouldShowRequestPermissionRationale(permission))
- return false;
- }
- return true;
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- switch (requestCode) {
- case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS: {
- Map<String, Integer> perms = new HashMap<String, Integer>();
- // Initial
- perms.put(Manifest.permission.ACCESS_FINE_LOCATION, PackageManager.PERMISSION_GRANTED);
- perms.put(Manifest.permission.CAMERA, PackageManager.PERMISSION_GRANTED);
- perms.put(Manifest.permission.CALL_PHONE, PackageManager.PERMISSION_GRANTED);
- perms.put(Manifest.permission.WRITE_EXTERNAL_STORAGE, PackageManager.PERMISSION_GRANTED);
- perms.put(Manifest.permission.READ_CONTACTS, PackageManager.PERMISSION_GRANTED);
- perms.put(Manifest.permission.RECORD_AUDIO, PackageManager.PERMISSION_GRANTED);
- // Fill with results
- for (int i = 0; i < permissions.length; i++)
- perms.put(permissions[i], grantResults[i]);
- // Check for ACCESS_FINE_LOCATION
- if (perms.get(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
- && perms.get(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
- && perms.get(Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED
- && perms.get(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
- && perms.get(Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED
- && perms.get(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
- // All Permissions Granted
- // Do something next
- } else {
- // Permission Denied
- Log.i("Permission", " some of the permission have been denied");
- // Alert user about permission denied, and do something
- }
- }
- break;
- default:
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement