【发布时间】:2019-01-20 01:27:12
【问题描述】:
我的项目需要帮助,我应该让 BroadcastReceiver 在当前锁定屏幕上启动全屏活动。 我在我的活动中试过这个:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("onCreate","success");
PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire(10*60*1000L /*10 minutes*/);
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
this.setShowWhenLocked(true);
this.setTurnScreenOn(true);
setContentView(R.layout.activity_stop);
}
广播接收者:
Intent i = new Intent(context,StopTheAlarm.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
AndroidManifest.xml:
<activity android:name=".Stop"
android:showOnLockScreen="true"
android:screenOrientation="sensorPortrait">
</activity>
但它不适用于我的 android 7.0.1 手机
【问题讨论】:
-
它是否适用于其他安卓版本?可能是您的广播接收器未在清单中注册的问题。
-
它已注册广播接收器工作正常由于缺乏资源我没有尝试其他版本
标签: android android-activity broadcastreceiver lockscreen powermanager