我想在我锁定设备时显示一个Android活动。 每次,如果我锁定我的平板电脑(例如),我应该看一个活动。
所以,我在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>
这是活动代码
public class SetupInfoEmergencyActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
}
}
现在,如果我尝试运行调试,我可以看到此活动,但如果我取消锁定我的设备,并且我锁定设备,我就看不到该活动。
答案 0 :(得分:2)
在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);
答案 1 :(得分:0)
不要使用活动。出于安全原因,Android不会在您的活动后面显示锁定屏幕,因此请使用服务而不是活动。
以下是我服务的onStartCommand中的代码。
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_ALERT_WINDOW”来表示
这是另一篇类似帖子的副本。我用自定义视图快速尝试了它,它运行得很好。不过,不知道你的意图是什么。