package com.rockchip.smart.rockhome; import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Handler; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class LauncherActivity extends AppCompatActivity { private static final int REQUEST_READ_PHONE_STATE = 0x00000001; private static final int REQUEST_PERMISSION_STORAGE = 0x00000002; private static String[] PERMISSIONS_STORAGE = { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launcher); requestPermission(this); } private void requestPermission(Context context) { if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); } else { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP && ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_STORAGE); } else { new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(LauncherActivity.this, RockHomeActivity.class); startActivity(intent); finish(); } }, 2000); } } } @Override protected void onResume() { super.onResume(); } @Override protected void onPause() { super.onPause(); } @Override protected void onDestroy() { super.onDestroy(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case REQUEST_READ_PHONE_STATE: if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP && ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_STORAGE); } else { //TODO new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(LauncherActivity.this, RockHomeActivity.class); startActivity(intent); finish(); } }, 2000); } } else { finish(); } break; case REQUEST_PERMISSION_STORAGE: if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) { //TODO new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(LauncherActivity.this, RockHomeActivity.class); startActivity(intent); finish(); } }, 2000); } else { finish(); } break; } } }