我开发了一款可在智能手机收到短信时自动加载的应用程序。
问题是,如果屏幕的手机关闭或者黑色"模式,当SMS到达时,App不会加载。我需要我的应用程序以编程方式打开屏幕。那可能吗?我找到了几个过去的答案,但没有人工作过。
我试过了:
WindowManager.LayoutParams params =
getWindow().getAttributes();
params.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
并尝试过:
super.onCreate(savedInstanceState);
setContentView(R.layout.my_main_activity);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
修改
我尝试过建议:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
但奇怪的是Android Studio给了我错误:
Cannot resolve symbol 'FLAG_SHOW_WHEN_LOCKED'
答案 0 :(得分:1)
不是KEEP_SCREEN_ON
,而是FLAG_DISMISS_KEYGUARD
,FLAG_SHOW_WHEN_LOCKED
和FLAG_TURN_SCREEN_ON
:
Window window = this.getWindow();
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
答案 1 :(得分:0)
除了@ 323go的优秀答案,我了解到:
应在build.gradle中设置适当的SDK或API版本
android {
signingConfigs {
config {
}
}
compileSdkVersion 20
buildToolsVersion '20.0.0'
defaultConfig {
applicationId 'com.calisalasapp'
minSdkVersion 8
}
应在SDK Manager中安装所有适当的API版本