首先,我是Android和Java编程的新手。这就是说我不确定我能做什么。我希望能够使用webView加载网址并使用keep_screen_on来防止屏幕变暗。
以下是我正在使用的代码。我可以加载网页,但屏幕在一分钟后变暗。
感谢任何帮助。
这是Java页面:
package com.mysite;
import com.mysite.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.webkit.WebView;
public class MainActivity extends Activity {
public WebView myWebView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
这是我的清单页面:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mysite"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.mysite.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:3)
有三种可能的方法可以做到这一点,两种更好,功能相似,只是你使用的个人偏好。另一个更具攻击性,可用于其他需要系统其他部分保持清醒的场景(如处理器)。
以下是方法:
通知您希望屏幕保持在window manager
的{{1}}
下面的此活动使屏幕保持使用窗口管理器,您不必担心管理它,它将在活动生命周期的持续时间内保持打开状态。屏幕可能暗淡但不会关闭。您的清单中不需要任何权限。
onCreate
package com.mysite;
import com.mysite.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.webkit.WebView;
public class MainActivity extends Activity {
public WebView myWebView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
}
}
- 用于关键下载或您绝对不希望Android系统关闭的内容
此活动获取唤醒锁,以便在此活动中保持屏幕开启。这需要您的清单中的权限。管理唤醒锁并在完成后始终释放它们非常重要(在onPause中)。
WakeLock
声明屏幕保持在public class MainActivity extends Activity {
private static final String TAG = "com.mysite.ScreenOnWakeLockActivity.WAKE_LOCK_TAG";
private WakeLock wakeLock;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flag);
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, TAG);
myWebView = new WebView(this);
myWebView.loadUrl("http://www.mysite.com");
}
@Override
protected void onResume() {
super.onResume();
wakeLock.acquire();
}
@Override
protected void onPause() {
super.onPause();
wakeLock.release();
}
}
此活动使屏幕保持使用我们正在使用的XML布局文件中的标记XML layout
不需要任何清单权限。
android:keepScreenOn=”true”