cocos2d-x在Android真机上使用Sqlite数据库
来源:互联网 发布:上海数据分析培训 编辑:程序博客网 时间:2024/06/06 01:15
转自点击打开链接
暂未验证。
首先,我是使用sqlite3.c来操作sqlite的,这个库的下载和使用,很多教程上都有介绍。
在win32和MacOS上,这个库的使用没啥特别,但是在Android上,却无法直接读取。
这里要说明,Android不能读取的原因,是因为对数据库的操作必须有root权限,也就是说,我们的应用程序只能对系统提供的特定目录中的数据库文件进行操作。
这个目录,cocos2.1.3可以通过CCFileUtils::sharedFileUtils()->getWritablePath()来获得。
也就是说,我们需要把资源目录下的sliqte库文件,复制到CCFileUtils::sharedFileUtils()->getWritablePath()中,才可以对其进行操作。
对于这种情况,我的解决方案是,在AppDelegate.cpp中,做如下实现
bool isFileExist(const char* pFileName){if(!pFileName)return false;std::string filePath = CCFileUtils::sharedFileUtils()->getWritablePath();filePath+=pFileName;FILE *pFp = fopen(filePath.c_str(),"r");CCLog(filePath.c_str());if(pFp){fclose(pFp);return true;}return false;}void copyData(const char* pFileName){std::string strPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(pFileName);unsigned long len=0;unsigned char* data =NULL;data = CCFileUtils::sharedFileUtils()->getFileData(strPath.c_str(),"r",&len);std::string destPath = CCFileUtils::sharedFileUtils()->getWritablePath();destPath+= pFileName;FILE *pFp=fopen(destPath.c_str(),"w+");fwrite(data,sizeof(char),len,pFp);fclose(pFp);delete []data;data=NULL;}bool AppDelegate::applicationDidFinishLaunching(){#if (CC_TARGET_PLATFORM !=CC_TARGET_WIN32)//Android下需要复制数据文件//检查数据库文件是否已经提取if(isFileExist("dbd_user_save.db")==false){copyData("dbd_user_save.db");//要使用的sqlite库文件}#endif//下略
在程序启动时,检查sqlite是否存在,不存在,则复制一份
0 0
- cocos2d-x在Android真机上使用Sqlite数据库
- cocos2d-x在Android真机上使用Sqlite
- cocos2d-x在Android真机上使用Sqlite
- 在Cocos2d-x中使用SQLite数据库
- 在cocos2d-x中使用sqlite
- Cocos2d-x使用SQLite
- 实例说明在Cocos2d-x 3.x中使用SQLite
- cocos2d-x sqlite的使用,数据库操作的封装
- cocos2d-x sqlite的使用,数据库操作的封装
- 在Cocos2d-x中使用SQLlite数据库
- cocos2d-x SQLite基本使用
- Cocos2d-x SQLite使用错误
- cocos2d-x中使用sqlite
- cocos2d-x 数据存储 Sqlite数据库
- Cocos2d-x中创建SQLite数据库
- Cocos2d-x中SQLite数据库管理工具
- 在Android使用adb管理sqlite数据库
- 在android中使用SQLite数据库
- 如何诊断RAC系统中的gc cr multi block request
- 文件夹操作
- svn 命令使用
- 黑马程序员--Java基础学习(环境配置)第一天
- 北大OJ 1001题 Exponentiation涉及的效率问题(整型和字符串转换)
- cocos2d-x在Android真机上使用Sqlite数据库
- 移除未排序链表中的重复结点
- 一段关于Unix与 Linux的暗黑史
- hdu3488Tour KM算法
- 剑指offer 算法 (位运算)
- ios 后退指定 跳转
- C语言结构体排序方法
- poj-2002 Squares
- iPhone开发网站、论坛、博客