cocos2d-x 游戏不休眠[]

cocos2d-x 游戏不休眠[],第1张

概述做游戏时希望游戏在不进行 *** 作时也保持在前台常亮状态,别指忘每个用户都知道在手机里设置待机时间。用代码搞定它! Cocos2d-x 安卓设定不休眠分两步走: 一、设置休眠权限 在  AndroidManifest.xml  加入   <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>   <= 做游戏时希望游戏在不进行 *** 作时也保持在前台常亮状态,别指忘每个用户都知道在手机里设置待机时间。用代码搞定它!
Cocos2d-x 安卓设定不休眠分两步走:
一、设置休眠权限
在 AndroIDManifest.xml 加入 <uses-permission androID:name="androID.permission.WAKE_LOCK"></uses-permission>



<=================================(图一)=======================================>



<=================================(图二)=======================================>

二、设置不休眠 在 AppActivity.java 加入代码,设定为不休眠。
来自CODE的代码片 AppActivity.java


<=================================(图三)=======================================>



<=================================(图四)=======================================>
http://blog.csdn.net/marpools/article/details/33784289 -----------------------------------------------------------------------------------------------------------------------------------------------------
androID(安卓)cocos2d-x关于防止游戏中锁屏问题

2013-08-31 18:16:14|分类:android |标签:cocos2dxandroid|举报|字号订阅

最近写的一个塔防游戏。在玩游戏的时候发现,安卓手机过一会就会锁屏。苹果的ios这方面关于锁屏的资料到是有很多。而且苹果的官方也有说明文章,但是安卓的就不多。在网上找了很多的资料,大部分都写的很简短,对于像我这个安卓新手来说,完全不知道写的是什么。因为我是用cocos2d-x写的游戏,然后用cygwin编译,再用Google androID的ADT编译到手机上的。 于是又在群里问,一般的群里不是在聊女人,就是在瞎扯蛋。在我很失落的时候,群里有一个人主动密我,告诉我安卓里的锁屏是怎么回事。于是我很感动。这位朋友,给了我一个网页。我发现这个正是我需要的。所以,现在把我的一些经验来分享给也同在使用cocos2d-x开发游戏的朋友。 这个网页是: http://www.cnblogs.com/king_dy/archive/2010/11/11/1888134.html,大家可以去看一下。 现在,我来说一下,安卓中怎么关手机的自动锁屏。 在 Eclipse中导入我们的cocos2d-x的安卓项目。然后我们会在一个文件夹下(好像是src文件夹)找到一个你项目名字的.java文件.打开这个文件,你会找到一个 onCreate()的方法,我用的是cocos2d-x2.1.4版本的. 在这个文件中现在只有 onCreate()这一个方法。上边文章中提到的 onDestroy(),onPause(),onResume()的几个方法都没有。 如果,细看这个"项目名.java"类,你会发现这个类是继承自cocos2d-x的java接口类"Cocos2dxActivity.java",这个类是放在cocos2d-x引擎的下边路径中的。这个类是有 onCreate(), onDestroy(), onPause(), onResume()。这四个方法的。 ..\cocos2d-2.0-x-2.0.4\cocos2dx\platform\androID\java\src\org\cocos2dx\lib 我没有找过相关的资料,经验告诉我,这四个方法功能分别是: onCreate():应用程序被打开时调用的方法。 onDestroy():应用程序被完全退出时调用的方法。 onPause():应用程序暂时退到后台运行时调用的方法。 onResume():应用程序从退台运行返回前台运行时调用的方法。 而我们关于安卓手机自动锁屏的管理类,这个应该和苹果的应用管理类一样,应该也是一个全局的单例类。 苹果中我们都知道,这个管理设备的类叫“ UIApplication”,这个是一个单例类,大家都知道,网上也有很多,这里就不说了。 我们来接着说安卓。从上边引用的那个博客中,我们知道了,安卓中这个管理类应该是 androID.os.PowerManager.很明显,我们从这个类名 PowerManager就可以知道这是一个电源相关的管理类,而一般有Manager后缀的类都是单例类。 好了,知道了这些,下边我们来关闭安卓应用程序中的自动锁屏。 在我们的cocos2d-x项目中的”项目名.java“文件中修改原来自带的那一个 onCreate(),在这里打开设备管理中的禁止锁屏功能。这样应用程序就不会在运行的时候,被系统锁屏了。注意这里有一个变量,可能会提示错误“ mWakeLock ”,我们知道这个变量是什么类型( PowerManager. WakeLock类型 )以后,在.java中再自已定义一下这个变量就行了,因为 PowerManager是个单例类,所以我们定义的 mWakeLock不管是私有变量,还是公有变量其实都不会影响我们使用,因为对他的初始化我们使用的是单例类的方法: newWakeLock()
                       (PowerManager) getSystemService(Context.POWER_SERVICE);                                                                       PowerManager pm = mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"XYTEST"); mWakeLock.acquire(); 
如果你发现 PowerManager这个类错误,那是因为你.java开头没有导入这个类。 在这个.java文件中加入下边的引入代码就行了。我的那个群里的朋友告诉我了另一个方法,那就是Ctrl+Shift+"o"的按键组合,在 Eclipse中使用这个快捷键可以自动导入已经引用的类。

import androID.os.PowerManager;

这样,在应用程序运行的时候,手机就不会自动锁屏了。但是会出现另一个问题,就是当你按了Home键之后,程序退到了后台时,手机也不锁屏了。所以,我们可以重写一下 onPause()方法,这个方法是程序 停运行于后台时调用的 方法,在这里加入下边的移除不锁屏功能代码。

if(mWakeLock != null) { mWakeLock.release(); mWakeLock = null; }

然后再在程序由后台转入前台的时候调用的方法 onResume() 中加入下边的关闭锁屏代码,如果项目名.java中没有这个方法,我们重写一下这个方法就行了。

if(mWakeLock == null) { PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "XYTEST"); mWakeLock.acquire(); }

到些,我试一下,我的游戏已经不会在运行的时候锁屏了,而且会在退出到后台运行的时候,开启锁屏。 如果,你的应用程序还是会锁屏,那一定是你的项目配置文件AndroIDManifest.xml中没有加入锁屏控制权限。 打开 AndroIDManifest.xml,在里边加入下边的设置就可以了。 <uses-permission androID:name="androID.permission.WAKE_LOCK"/> 上边的设置权限,其实就像我们的安卓应用要访问网络的权限设置一样。下边是我们的安卓应用或者游戏可以访问网络的权限。 <uses-permission androID:name=”androID.permission.INTERNET”></uses-permission> 下边总结一下我知道的权限,可能以后会用的到,我现在写在这里,也方便我以后查找: 闪光灯: <uses-permission androID:name="androID.permission.FLASHliGHT"/> 锁屏: <uses-permission androID:name="androID.permission.WAKE_LOCK"/> 摄像头: <uses-permission androID:name="androID.permission.CAMERA"/> <uses-permission androID:name="androID.harDWare.camera"/> 网络: <uses-permission androID:name=”androID.permission.INTERNET”> 硬件调试: <uses-permission androID:name="androID.permission.HARDWARE_TEST" /> http://fengmm521.blog.163.com/blog/static/2509135820137315430118/ 总结

以上是内存溢出为你收集整理的cocos2d-x 游戏不休眠[]全部内容,希望文章能够帮你解决cocos2d-x 游戏不休眠[]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1010474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存