Cocos2dx 禁止锁屏

IOS版本:

在文件AppController中的 didFinishLaunchingWithOptions函数中加一行代码即可:

  1. // 禁止ios设备锁屏  
  2.     [[UIApplication sharedApplication] setIdleTimerDisabled: YES];  

Android版本有点复杂,参考一下几篇文章:

点击打开链接点击打开链接(详细信息请参考)

为Android添加OnPause等方法;

onCreate(): 应用程序被打开时调用的方法。
onDestroy(): 应用程序被完全退出时调用的方法。
onPause(): 应用程序暂时退到后台运行时调用的方法。
onResume(): 应用程序从退台运行返回前台运行时调用的方法。
锁屏属于电源管理,所以需要导入PowerManager类,这里需要注意在Oncreate里启用了禁止锁屏之后,在通过Home键等暂停游戏的时候需要将禁止锁屏关掉,以免影响整个系统,退出游戏的时候也需要关掉禁止锁屏功能,同上;
(Android有点小麻烦)
  1. import android.os.PowerManager;  
  2. import android.os.PowerManager.WakeLock;  
  3.   
  4.   
  5. public class ShenMoJie extends Cocos2dxActivity{  
  6.     WakeLock mWakeLock;  
  7.       
  8.     protected void onCreate(Bundle savedInstanceState){  
  9.         super.onCreate(savedInstanceState);  
  10.           
  11.         WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);  
  12.         WifiInfo info = wifi.getConnectionInfo();  
  13.         GetMacAddress.strMacAddress=info.getMacAddress();  
  14.           
  15.         //设置该界面的电源管理->打开禁止锁屏功能  
  16.         PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);   
  17.         mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"XYTEST");   
  18.         mWakeLock.acquire();  
  19.     }  
  20.       
  21.     protected void onPause() {  
  22.         super.onPause();  
  23.         //程序暂停运行于后台时调用的方法,在这里加入下边的移除不锁屏功能代码。  
  24.         if(mWakeLock != null) {  
  25.            mWakeLock.release();  
  26.            mWakeLock = null;  
  27.         }  
  28.     }  
  29.       
  30.     protected void onResume() {  
  31.         super.onResume();  
  32.         //程序由后台转入前台的时候调用的方法onResume()中加入下边的关闭锁屏代码  
  33.         if(mWakeLock == null) {  
  34.            PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);  
  35.            mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "XYTEST");  
  36.            mWakeLock.acquire();  
  37.         }  
  38.     }  
  39.       
  40.     public void onDestroy() {  
  41.         //取消设置  
  42.         super.onDestroy();  
  43.         if(mWakeLock == null) {  
  44.             mWakeLock.release();  
  45.         }  
  46.     }  
  47.       
  48.     static {  
  49.          System.loadLibrary("shenmojie");  
  50.     }  
  51. }  
另外,需要在AndroidManifest.xml文件里,添加
  1. <uses-permission android:name="android.permission.WAKE_LOCK"/>  
如果有的话就不需要了;

附注:

设置电源管理常用的几种状态
PARTIAL_WAKE_LOCK                      屏幕关,键盘灯关,不休眠
SCREEN_MID_WAKE_LOCK             屏幕灰,键盘灯关,不休眠
SCREEN_BRIGHT_WEEK_LOCK       屏幕亮,键盘灯关,不休眠
FULL_WAKE_LOCK                             屏幕亮,键盘灯亮,不休眠

详情参考这篇文章点击打开链接,写得很详细;

另外Android还有一种我没有尝试的方法,网友提供,请参考:

在OnCreate函数中添加代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

不知效果如何,可以尝试一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值