Android 设备锁定时如何显示活动?
我想在安卓系统上显示一个活动,也就是当我锁定设备时。 每次,如果我锁定平板电脑(例如),我都会看到一个活动 因此,我在AndroidManifest.xml中构建了这个:Android 设备锁定时如何显示活动?,android,locking,Android,Locking,我想在安卓系统上显示一个活动,也就是当我锁定设备时。 每次,如果我锁定平板电脑(例如),我都会看到一个活动 因此,我在AndroidManifest.xml中构建了这个: <activity android:name=".activity.SetupInfoEmergencyActivity" android:label="@string/app_name" android:showOnLockScreen="true" android:screenOrie
<activity
android:name=".activity.SetupInfoEmergencyActivity"
android:label="@string/app_name"
android:showOnLockScreen="true"
android:screenOrientation="sensorPortrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
现在,如果我尝试运行调试,我可以看到此活动,但是如果我取消锁定设备,并且锁定设备,我就看不到该活动。不要使用活动。由于安全原因,Android不会在您的活动后显示锁屏,因此请使用服务而不是活动 下面是我的服务的onstart命令中的代码
WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
View mView = mInflater.inflate(R.layout.score, null);
WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
/* | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON */,
PixelFormat.RGBA_8888);
mWindowManager.addView(mView, mLayoutParams);
加
使用权限android:name=“android.permission.SYSTEM\u ALERT\u WINDOW”来显示
这是另一篇类似文章的副本。我用自定义视图快速地尝试了一下,效果很好。不过,我不知道您的意图是什么。在方法onCreate的最后一步中使用此代码
//show if unlock
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
嗯,好吧,但通过我的代码,我可以在锁定智能手机时看到活动。但如果我(例如)在智能手机上切换,它会被锁定,在这种情况下,我还希望看到包含我的信息的活动/视图/屏幕
//show if unlock
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);