android(安卓)cocos2d-x关于防止游戏中锁屏问题

Cocos2d-x客户端资源加密 安卓打包的apk文件只是做了简单的压缩,通过解压缩可以获取资源文件,如果不想图片资源被别人看到,那么可以对图片进行加密。 cocos2d-x提供了xxtea加密和解密算法,先将图片进行加密,这样就打不开图片了,然后在CCImage解析图片的时候进行解密即可。 一、加密 用下面两个python脚本,对图片进行加密。 ################################## 阅读详情
       最近写的一个塔防游戏。在玩游戏的时候发现,安卓手机过一会就会锁屏。苹果的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不管是私有变量,还是公有变量其实都不会影响我们使用,因为对他的初始化我们使用的是单例类的方法: PowerManager. newWakeLock()

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
          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" />
【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践 本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。 阅读详情

相关推荐

程序化广告行业(2/89):从程序化广告深挖数据处理技巧

大家好!我一直希望能和大家在技术学习的道路上携手共进,这也是我写这一系列博客的初衷。上次我们一起学习了Python基础的数据处理知识,这次咱们借助一本程序化广告手册,深入挖掘数据处理的更多技巧。这本手册涵盖了程序化广告从概念到技术实现的诸多方面,而其中处处都涉及到数据处理,相信会给我们带来不少收获

yyy173611的博客 4572

Cocos2d-x 如何保持屏幕常亮

ios [ [ UIApplication sharedApplication ] setIdleTimerDisabled:YES ] ; 这句加到AppController.mm文件的didFinishLaunchingWithOptions方法里面,添加到 [[UIApplicationsharedApplication]setStatusBarHidden:YES]; 这句...

L的博客 1177

Win11上从零跑通Carla自动驾驶仿真:保姆级环境配置与避坑指南(Python 3.7+)

本文详细介绍了在Win11系统上从零配置Carla自动驾驶仿真环境的完整流程,包括Python 3.7+环境搭建、依赖安装、常见问题排查及性能优化技巧。通过保姆级教程帮助开发者快速避坑,实现稳定的自动驾驶仿真测试环境部署。

weixin_33488239的博客 421

Cocos2dx 禁止锁屏

IOS版本: 在文件 cocos2d::CCApplication::sharedApplication()->run();

天梯 5815

贝叶斯网络 (Bayesian Networks) 原理与代码实例讲解

贝叶斯网络 (Bayesian Networks) 原理与代码实例讲解 1. 背景介绍 1.1 什么是贝叶斯网络? 贝叶斯网络(Bayesian Networks)是一种基于概率论的图形模型,用于表示随机

AI天才研究院 1334

解决Office 365 SMTP问题:C#邮件发送详解

本文介绍了如何在C#中使用Office 365 SMTP服务发送邮件。重点讲解了正确配置SMTP客户端的关键参数:必须使用587端口并启用TLS加密(EnableSsl=true),同时通过NetworkCredential进行身份验证。虽然SmtpClient已不推荐用于新项目,但本文提供的代码示例仍适用于临时项目或系统维护,并建议未来可考虑使用MailKit等现代邮件库。文章还包含了错误处理机制,确保程序健壮性。

2501_90323865的博客 141

cocos2d-x设置android里的防止锁屏

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

Zhenli312的专栏 1779

解锁机器人动态平衡算法:从原理到实践

机器人的动态平衡,是指机器人在运动过程中,面对各种复杂的动态变化和外界干扰,依然能够维持稳定状态,不发生倾倒或失去控制的能力。它就像是一位技艺精湛的舞者,在舞台上翩翩起舞时,无论做出多么复杂的动作,都能巧妙地调整身体姿态,始终保持平衡,展现出优美的舞姿。在实际应用中,机器人的动态平衡对于其稳定运行起着至关重要的作用。以双足机器人为例,当它行走在不平整的地面上时,地面的起伏会使机器人的重心不断发生变化。如果没有良好的动态平衡能力,机器人就很容易因为重心偏移而摔倒,无法完成行走任务。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 3838

Cocos2dx 解决在Android平台运行游戏长时间不操作,导致的锁屏问题

测试时候发现的问题,比如有些较长的过长

IT男也疯狂 2314

2025爬虫实战:某音直播间实时弹幕获取原理及源码分析

某音直播弹幕虽然没有直接挂在 DOM 上,但由于用的是西瓜播放器,弹幕是通过 JS 接口动态渲染的,这就给了我们 Hook 的机会。关键点是找到调用的位置,然后拦截并输出对象里的message字段。这个思路其实也适用于其他前端渲染的播放器,比如 B 站的 DPlayer、HLS.js、甚至很多自研播放器都有类似结构。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1814

《网络摄像机实战⑦:嵌入式端AWS KVS IoT SDK 库编译与测试全流程-君正/瑞芯微/全志(超详细指南)》

本文介绍了AWS音视频和物联网解决方案的核心组件与集成方法。主要内容包括:1)Amazon Kinesis Video Streams(KVS)提供的WebRTC托管服务,支持实时音视频流传输与双向交互;2)AWS IoT云服务实现设备连接与集成;3)详细说明了KVS WebRTC库的编译过程,包括源代码下载、CMake配置和依赖库生成;4)KVS Producer库的集成方法,重点阐述了存储空间调整和mbedtls版本适配等关键修改点。文章为开发者提供了AWS音视频和物联网服务的技术实现指南,特别针对嵌入

lvj_158的专栏 109

cocos2d-x 游戏不休眠[]

做游戏时希望游戏在不进行操作时也保持在前台常亮状态,别指忘每个用户都知道在手机里设置待机时间。用代码搞定它! Cocos2d-x 安卓设定不休眠分两步走: 一、设置休眠权限 在  AndroidManifest.xml  加入      =========================(图一)======================

wyr0924的专栏 1580

TriCore架构-基于TC397的启动流程

TC397芯片的启动流程分为三个关键阶段:固件启动(BootFirmware)、Bootloader引导和应用程序启动。BootFirmware作为硬件信任根,包含SSW基础初始化、CHSW自检和BSL应急刷写通道。Bootloader承担安全验证和程序引导功能,支持双分区(AB-SWAP)和双引导方案(PBL/SBL)。安全启动通过校验机制确保软件完整性,提供三种可选技术方案。应用程序启动阶段实现软件双分区管理,支持SOTA更新。整个流程体现了汽车电子系统的安全设计理念,通过硬件级保护与软件验证相结合确保

xiandang8023的博客 987

cocos2d-x创建安卓项目,解决锁屏会黑屏

参考 http://blog.youkuaiyun.com/hahahacff/article/details/8518541

Jingle的专栏 4349

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Cocos2d-X 安卓中禁止锁屏,音量调节,TexturePacker文件在函数中的具体使用

做游戏过程中会有一些比较有价值的方法或要点,在此记下,为了方便自己日后查看,也为了给大家一个提醒! 1、有时候临时加载一个帧较多的动画可能会有点卡,但更重要的是可能会影响到其它的功能,我曾经遇到这样的问题:在点击菜单按钮时播放一个动画,结果这个动画帧数较多,播放的时候有些卡,接着可能出现点击了2次按钮动画才播放,同时这个按钮对应的方法也执行了两次,这就出现了大问题。出现这种情况时,我只找到了一个

SharkMarine的专栏 1888

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

如何在Cocos2d-x中集成安卓版微信SDK

如何在Cocos2d-x中集成安卓版微信SDK

笑笑生的博客 3092

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【cocos2dx】监听安卓机的返回键

在玩cocos2d-x的时候,每次真机实测,都要按home键来‘退出’游戏,因为没有监听返回键,这让我想起了某个版本的手机QQ,也是没有监听返回键来着。 来简单写一下cocos2d-x监听安卓的返回键。   简单的用helloworld项目来实验 首先在.h文件覆盖onKeyReleased函数。 virtual void onKeyReleased(EventKeyboard::Ke

lif的博客 4176

Cocos2d-x 3.X游戏开发:从入门到跨平台发布实战指南

游戏引擎是游戏开发的核心框架,它封装了图形渲染、物理模拟、音频处理等底层技术,通过提供高层API提升开发效率。其工作原理在于将游戏逻辑、资源管理与平台抽象层解耦,实现一次编码多端部署的技术价值。在移动游戏、独立游戏开发等应用场景中,跨平台能力与性能表现尤为关键。本文聚焦于Cocos2d-x 3.X这一经典开源框架,深入探讨其环境搭建、核心架构、资源管理及跨平台发布全流程,为开发者提供从入门到实战的系统指引,助力高效实现app发布与跨平台游戏开发需求。

weixin_34121282的博客 369

cocos2d-x Android原生平台与Lua交互

cocos2d-x Lua项目与原生平台Android的交互

鹤九日的博客 1972

2024年安卓最全Cocos2d-x 3(1),2024年最新flutter页面跳转防止页面重复刷新

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思考,不断反思总结,保持学习的热情,一步一步构建自己完整的知识体系,才是最终的制胜之道,也是程序员应该承担的使命。你不踏出去一步,永远不知道自己潜力有多大,千万别被这个社会套在我们身上的枷锁给捆住了,30岁我不怕,35岁我一样不怕,去做自己想做的事,为自己拼一把吧!但是如果你仅仅是看一遍,而不去学习和深究。

2401_84545669的博客 781

Cocos2d-x实战:从零开发2D躲避游戏,掌握性能优化与跨平台发布

在2D游戏开发中,精灵控制、物理碰撞和UI交互是构建游戏体验的核心模块。其原理在于通过游戏引擎的渲染循环、事件分发与节点树系统,高效管理游戏对象的状态与交互。掌握这些技术不仅能实现丰富的游戏玩法,更能为移动端带来流畅的用户体验,尤其适用于对性能敏感的休闲游戏场景。本文以Cocos2d-x引擎为例,通过一个完整的“疯狂躲避”游戏项目,系统讲解如何实现触摸响应、圆形碰撞检测及游戏状态管理。针对移动端常见的性能瓶颈,深入探讨了对象池与纹理图集等优化技术,以降低Draw Call和内存分配开销,确保游戏在多种设备上

chutisun0039的博客 401

cocos2d-x编译安卓版本时实现“再按一次退出程序”的效果

我们常见的安卓项目都有再按一次退出程序的提示,或者是要有一个确认框,这样可以避免由于误按导致的程序的退出,所以,当我们通过cocos2d-x制作项目时,也常用到这样的功能,如果通过c++来实现的话,会相对麻烦些,况且不同地方都要设置,相对麻烦,而通过原生的java就可以很好的解决这个问题。 1、我用的cocos2d-x的版本为2.1.5,版本不同,可能具体的解决方法不同,但思路相同。

每天成就一点点 1088

cocos2d-x 3.0 WIN7+VS2012 安卓平台搭建

cocos2d-x 3.0 WIN7+VS2012 安卓平台搭建

继续激情,继续奋斗。 3765

Cocos2d-x跨平台游戏开发入门:从环境搭建到性能优化

跨平台游戏开发是当前移动应用领域的重要技术方向,其核心原理在于通过一套代码库适配多个操作系统,从而显著提升开发效率并降低维护成本。在技术实现上,C++、Lua等语言与特定引擎框架的结合,为开发者提供了高性能、灵活的技术方案。Cocos2d-x作为一款成熟的2D游戏引擎,其技术价值在于提供了完整的跨平台工作流,从资源管理、渲染架构到多端编译发布,帮助开发者高效构建游戏应用。在实际开发中,开发者常会遇到诸如“quick cocos2d-x v3 'system' is unavailable”等平台适配问题,这

weixin_34199405的博客 361

cocos2d-x android平台切入后台纹理失效的解决方法

android系统下,切入后台,则纹理全部失效,从后台切到前台,cocos2d-x会重新加载纹理。这样有两个问题: 1、如果纹理较多的话,加载纹理会卡很长时间,就像死机一样。  变通解决方法是修改引擎代码,增加一个进度条提示。 2、文字描边等用到RenderTexture的地方会出现异常纹理,文字会花掉。  暂时不知道原因,无解。 这里提供一个解决方案,解决掉纹理失效的问题,初步测试

langresser的专栏 1万+

Unity与Cocos2d-x双引擎实现Flappy Bird:源码对比与实战解析

在移动游戏开发领域,2D游戏开发是许多开发者的入门起点,其核心在于高效处理精灵动画、物理碰撞与用户交互。理解不同游戏引擎的原理与特性,对于技术选型与项目成功至关重要。Unity以其强大的可视化编辑器与组件化架构,显著提升了开发效率与团队协作体验;而Cocos2d-x则凭借其轻量级、高性能及对C++/Lua的深度支持,在包体大小与运行效率上具备优势。这两种技术方案分别代表了快速原型开发与底层性能控制两种不同的工程实践路径。本文通过一个经典的Flappy Bird游戏项目,从项目结构、核心逻辑、物理系统、渲染优

weixin_34226182的博客 530
上一篇: win7 32位下硬盘安装64位(64位安装32位)方法(转)
下一篇: boost库简介(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值