做游戏时希望游戏在不进行操作时也保持在前台常亮状态,别指忘每个用户都知道在手机里设置待机时间。用代码搞定它!


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 游戏不休眠[]的更多相关文章

  1. html5 canvas合成海报所遇问题及解决方案总结

    这篇文章主要介绍了html5 canvas合成海报所遇问题及解决方案总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. Html5 video标签视频的最佳实践

    这篇文章主要介绍了Html5 video标签视频的最佳实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  3. HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题

    HTML5在微信内置浏览器下,在右上角菜单的调整字体导致页面显示错乱的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

  4. ios – containerURLForSecurityApplicationGroupIdentifier:在iPhone和Watch模拟器上给出不同的结果

    我使用默认的XCode模板创建了一个WatchKit应用程序.我向iOSTarget,WatchkitAppTarget和WatchkitAppExtensionTarget添加了应用程序组权利.(这是应用程序组名称:group.com.lombax.fiveminutes)然后,我尝试使用iOSApp和WatchKitExtension访问共享文件夹URL:延期:iOS应用:但是,测试NSURL

  5. Ionic – Splash Screen适用于iOS,但不适用于Android

    我有一个离子应用程序,其中使用CLI命令离子资源生成的启动画面和图标iOS版本与正在渲染的启动画面完美配合,但在Android版本中,只有在加载应用程序时才会显示白屏.我检查了config.xml文件,所有路径看起来都是正确的,生成的图像出现在相应的文件夹中.(我使用了splash.psd模板来生成它们.我错过了什么?这是config.xml文件供参考,我觉得我在这里做错了–解决方法在config.xml中添加以下键:它对我有用!

  6. ios – 无法启动iPhone模拟器

    /Library/Developer/CoreSimulator/Devices/530A44CB-5978-4926-9E91-E9DBD5BFB105/data/Containers/Bundle/Application/07612A5C-659D-4C04-ACD3-D211D2830E17/ProductName.app/ProductName然后,如果您在Xcode构建设置中选择标准体系结构并再次构建和运行,则会产生以下结果:dyld:lazysymbolbindingFailed:Symbol

  7. Xamarin iOS图像在Grid内部重叠

    heyo,所以在Xamarin我有一个使用并在其中包含一对,所有这些都包含在内.这在Xamarin.Android中看起来完全没问题,但是在Xamarin.iOS中,图像与标签重叠.我不确定它的区别是什么–为什么它在Xamarin.Android中看起来不错但在iOS中它的全部都不稳定?

  8. 在iOS上向后播放HTML5视频

    我试图在iPad上反向播放HTML5视频.HTML5元素包括一个名为playbackRate的属性,它允许以更快或更慢的速率或相反的方式播放视频.根据Apple’sdocumentation,iOS不支持此属性.通过每秒多次设置currentTime属性,可以反复播放,而无需使用playbackRate.这种方法适用于桌面Safari,但似乎在iOS设备上的搜索限制为每秒1次更新–在我的情况下太慢了.有没有办法在iOS设备上向后播放HTML5视频?解决方法iOS6Safari现在支持playbackRat

  9. 早期Swift中Cocos2D初始化代码的重构

    但是遗憾的是Swift2.2中还是不支持Type的class属性关键字,只能用static,我们期待Swift3的改进吧!

  10. 使用 Swift 语言编写 Android 应用入门

    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。做梦,虽然Swift编译器可以胜任在安卓设备上编译Swift代码并运行。这需要的不仅仅是用Swift标准库编写一个APP,更多的是你需要一些框架来搭建你的应用用户界面,以上这些Swift标准库不能提供。简单来说,构建在安卓设备上使用的Swiftstdlib需要libiconv和libicu。通过命令行执行以下命令:gitclonegit@github.com:SwiftAndroid/libiconv-libi

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部