如果应用程序在启动时运行,如何让屏幕无法入睡?

时间:2017-10-19 11:55:47

标签: android broadcastreceiver

我有应用程序必须从设备开始'开机。它运作良好,但问题是,当应用程序完成启动时,屏幕已经很暗。怎么能让它不入睡? 我的接收者:

<receiver
      android:enabled="true"
      android:exported="true"
      android:name=".view.receivers.BootReceiver"
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
      <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />

        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </receiver>


public class BootReceiver extends BroadcastReceiver {

  private final static String LOG_TAG = BootReceiver.class.getSimpleName();

  @Override
  public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
      Log.i(LOG_TAG, "Loading after booting...");
      Intent startCalendarActivityIntent = new Intent(context, CalendarActivity.class);
      startCalendarActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(startCalendarActivityIntent);
    } else {
      Log.e(LOG_TAG, "Error while restarting after boot.");
    }
  }
}

此设备是Android 6.0。

1 个答案:

答案 0 :(得分:3)

您可以使用需要特定权限的wakelocks,也可以在onCreate方法中添加一个标记,根据docs不需要权限。

NgRedux

wakelock文档给出了上面的例子。