示例#1
0
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d(TAG, "onCreate");
    mainContext = this.getApplicationContext();
    Settings.System.putInt(
        getContentResolver(),
        Settings.System.SCREEN_OFF_TIMEOUT,
        0); // as soon as system will allow
    setContentView(R.layout.activity_main_screen);

    powerState = new PowerState();
    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    crashHandler = new CrashHandler();
    // Thread.setDefaultUncaughtExceptionHandler(crashHandler);

    if (MainActivity.lastActionTime == 0)
      MainActivity.lastActionTime = SystemClock.elapsedRealtime();

    if (devicePolicyManager == null) {
      devicePolicyManager =
          (DevicePolicyManager) this.getSystemService(Activity.DEVICE_POLICY_SERVICE);
      IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
      filter.addCategory(Intent.CATEGORY_HOME);
      filter.addCategory(Intent.CATEGORY_DEFAULT);
      devicePolicyManager.addPersistentPreferredActivity(
          DeviceOwnerReceiver.getComponentName(this),
          filter,
          DeviceOwnerReceiver.getComponentName(this));
      String[] packages = {this.getPackageName()};
      devicePolicyManager.setLockTaskPackages(DeviceOwnerReceiver.getComponentName(this), packages);
    }

    startService(new Intent(this, ActiveNotification.class));
    sendBroadcast(new Intent(TaskManager.INIT_INTENT));

    getWindow()
        .getDecorView()
        .setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

    if (devicePolicyManager.isLockTaskPermitted(getPackageName())) startLockTask();
  }