參考文檔 http://blog.csdn.net/tyxkzzf/article/details/38902325
http://www.cocoachina.com/bbs/read.php?tid=206199
http://www.cnblogs.com/king_dy/archive/2010/11/11/1888134.html
http://fengmm521.blog.163.com/blog/static/2509135820137315430118/
ios 版本
修改 proj.ios_mac -> ios -> AppController.mm 文件
在方法 -(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中加入
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];//禁止ios設備在遊戲期間鎖屏
android版本
找到 frameworks/runtime-src/proj.android/src/org/cocos2dx/lua/AppActivity.java
AppActivity.java 的父類是 Cocos2dxActivity.java 在cocos2d-x/cocos/platform/android/java/src/org/cocos2dx/lib 下
父類最好不要動,直接修改AppActivity.java
//cocos2d-x-3.1.1版本
package org.cocos2dx.lua;
import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
//導入電源管理類
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.Bundle;
import android.content.Context;
public class AppActivity extends Cocos2dxActivity {
//定義變量
WakeLock mWakeLock;
public Cocos2dxGLSurfaceView onCreateView() {
Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
// TestCpp should create stencil buffer
glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
return glSurfaceView;
}
//---- begin 複製
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//設置該界面的電源管理->打開禁止鎖屏功能
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"XYTEST");
mWakeLock.acquire();
}
protected void onPause() {
super.onPause();
//程序暫停運行於後臺時調用的方法,在這裏加入下邊的移除不鎖屏功能代碼。
if(mWakeLock != null) {
mWakeLock.release();
mWakeLock = null;
}
}
protected void onResume() {
super.onResume();
//程序由後臺轉入前臺的時候調用的方法onResume()中加入下邊的關閉鎖屏代碼
if(mWakeLock == null) {
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "XYTEST");
mWakeLock.acquire();
}
}
public void onDestroy() {
//取消設置
super.onDestroy();
if(mWakeLock == null) {
mWakeLock.release();
}
}
//---- end
}
另一個修改的地方是 frameworks/runtime-src/proj.android/AndroidManifest.xml
<!-- 設置取消鎖屏需要用到 -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>