参考文档 http://blog.youkuaiyun.com/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"/>