Android 设备锁定时如何显示活动?

Android 设备锁定时如何显示活动?,android,locking,Android,Locking,我想在安卓系统上显示一个活动,也就是当我锁定设备时。 每次,如果我锁定平板电脑(例如),我都会看到一个活动 因此,我在AndroidManifest.xml中构建了这个: <activity android:name=".activity.SetupInfoEmergencyActivity" android:label="@string/app_name" android:showOnLockScreen="true" android:screenOrie

我想在安卓系统上显示一个活动,也就是当我锁定设备时。 每次,如果我锁定平板电脑(例如),我都会看到一个活动

因此,我在AndroidManifest.xml中构建了这个:

<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);