【IOS】 遍历info 所有内容 && 唯一的节能设备UUID
/**获取装置imie*/
std::string DeviceInfo::getIMIE() {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
NSString*bunider = nil;
NSBundle* mainBundle = [NSBundle mainBundle];
NSDictionary* infoDictionary = [mainBundle infoDictionary];
id key;
NSArray* keys = [infoDictionary allKeys];
NSLog(@"Display all keys and values in info.plist\n");
for(key in keys)
{
NSString * keyCFBundleVersion = (NSString*)key;
if([keyCFBundleVersion isEqualToString:@"CFBundleIdentifier"])
{
NSLog(@"Bundle identifier = %@",keyCFBundleVersion); id version = [infoDictionary objectForKey:key];
bunider = (NSString*)version;
NSLog(@"bunider : %@",bunider);
}
// NSLog(@"key=%@ , value=%@\n",key,[infoDictionary objectForKey:key]);
} NSString *uuid = Nil;
// 须要用到开源类SSKeychain
// SSKeyChains对苹果安全框架API进行了简单封装。
// 支持对存储在钥匙串中密码、账户进行訪问,包含读取、删除和设置。 // SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes。 // 项目地址:https://github.com/samsoffes/sskeychain // 在project中增加SSKeyChain // 在project中增加Security.framework框架。
// 把SSKeychain.h和SSKeychain.m加到项目目录。 NSString *retrieveuuid = [SSKeychain passwordForService:bunider account:@"user"];
if ([retrieveuuid length] >0) {
uuid = retrieveuuid;
NSLog(@"uuid = %@",uuid);
return [uuid UTF8String];
} CFStringRef ref = CFUUIDCreateString(kCFAllocatorDefault,
CFUUIDCreate(kCFAllocatorDefault));
uuid = (NSString *)ref;
const char* destDir = [uuid UTF8String];
CFRelease(ref);
CCLOG("uuid = %s",destDir);
string sime = destDir;
sime = sime.substr(0,6);
log("sime = %s",sime.c_str());
uuid = [NSString stringWithFormat:@"%s", sime.c_str()]; [SSKeychain setPassword:uuid forService:bunider account:@"user"]; return sime;
#elif (CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)
JniMethodInfo minfo;//定义Jni函数信息结构体
//getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
bool isHave = JniHelper::getStaticMethodInfo(minfo,"com/nx/DeviceInfo","getIMIE", "()Ljava/lang/String;");
if(isHave){
jstring jstr;
jstr = (jstring)minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
string IMIE = JniHelper::jstring2string(jstr);
CCLOG("--------------------------------------->IMIE: %s",IMIE.c_str());
return IMIE;
}
return "androidleon";
#endif ///////////////////////////////////////debug
auto strings=FileUtils::getInstance()->getValueMapFromFile("debug_text.xml");
std::string debug_user_name = strings["user_name"].asString();
if(debug_user_name.size()>0){
CCLOG("==use debug username==");
return debug_user_name;
}
///////////////////////////////////////////////// return "12124124123123124wbytext";
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
【IOS】 遍历info 所有内容 && 唯一的节能设备UUID的更多相关文章
- PHP遍历目录下的文件夹和文件 以及遍历文件下内容
1.遍历目录下的文件夹和文件: public function bianli1($dir) { $files = array(); if($head = opendir($dir)) { while( ...
- 稳定获取Android设备唯一码(UUID)的解决方案
最近做的一个项目中需要用到Android设备唯一码(UUID)来标识一台设备, Android中设备唯一码有很多,如:MAC地址.IMEI号(DeviceId).IMSI号.ANDROID_ID.序列 ...
- 通用唯一标识码UUID的介绍及使用。
什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32 = ...
- ios webview自适应实际内容高度4种方法
有的时候会碰见类似的苦逼需求, webview自适应实际内容高度 下面有四种方法供使用 方法1:获取webview中scrovllview的contentsize进行设置 1 2 3 4 5 6 ...
- Java 用自带dom解析器遍历叶子节点内容
一.XML文件config.xml,内容如下: <?xml version="1.0" encoding="UTF-8" standalone=" ...
- iOS 动态计算文本内容的高度
关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. // 获取字符串的大小 ios6 - (CGSize)getStringRect_:(NSString* ...
- 【读书笔记】iOS网络-HTTP-请求内容
一,GET方法. 从服务器获取一段内容,用HTTP术语来说就是实体.GET请求通常不包含请求体,不过也是可以包含的.有些网络缓存设施只会缓存GET响应.GET请求通常不会导致服务器端的数据变化. 二, ...
- iOS内存管理部分内容
Objective-C 高级编程 iOS与OS X多线程和内存管理第一章部分讲述了关于ARC的内容,还讲述了关于修饰符的问题,还讲了好多底层的实现的内容,这些底层实现却往往是在面试的过程中经常被遇到的 ...
- jquery根据(遍历)html()的内容/根据子元素的内容(元素文本)来选择(查询),在子元素前加入元素
<ul> <li>First</li> <li>second</li> <li>third</li> </ul ...
随机推荐
- web报告工具FineReport在使用方法和解决方案常见错误遇到(一)
FineReport在使用方法和解决方案常见错误遇到(一) 这里写的开胃菜.我希望我们能理清自己的问题和解决办法干出来的,Mark一点点.有利于所有. 失败搜索出,如果有一个文件,看看你的度娘那里.看 ...
- 开源 自由 java CMS - FreeCMS1.9 评论管理
项目地址:http://code.google.com/p/freecms/ 评论管理 1. 评论管理 从左側管理菜单点击评论管理进入. 2. 评论审核 选择须要审核的评论,然后点击"审核& ...
- 【Android进阶】SlidingMenu实现侧滑栏效果的实现
public class MainActivity extends Activity { @Override protected void onCreate(final Bundle savedIns ...
- 华为OJ:查找字符的第一个字符串只出现一次
您可以使代码有点写得真好,不要直接写双循环,如果,是可能的写函数调用,非常高的可重用性. import java.util.Scanner; public class findOnlyOnceChar ...
- css两种动态显示星星等级的比较(一星、两星、三星、四星、五星)
原文:css两种动态显示星星等级的比较(一星.两星.三星.四星.五星) 以下是显示后的图片,相信在很多网站上都能看到这种效果,目前我知道两种实现方式 1.background-position加上一张 ...
- [Android] App在三星某些机子上闪退:"不保留活动"
今天遇到用户反映应用总是闪退. 现象:在MainActivity后,只要进入任何主进程相关的二级界面,都会导致应用闪退(注:不是崩溃引起的,只是闪退) 分析:1.看log日志,退出前有抛出异常,但查看 ...
- Android学习路径(七)建立Action Bar
在action bar最今本的形式中,它只在左边展示了activity的标题以及应用的icon. 即使在这样的简单的形式中,它也不过告诉用户如今在应用的哪个activity中,同一时候为你的应用保持一 ...
- Linux磁盘分区,目录树,文件系统的关系(转)
研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式.对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误.今天花一天的时间,终于对三者的区别和联系有了更 ...
- angularJS socket
工程Controller加载文件Service层socket.js.controller所在页面时连接socket(也可一进入项目就连接,看需求).细节还需继续优化,写下来以防忘了~ Service层 ...
- 随着MapReduce job实现去加重,多种输出文件夹
总结以往的工作中遇到的一个问题. 背景: 操作和维护与scribe从apacheserver一再被推到日志记录,所以在这里ETL处理正在进行的重.有根据业务的输出类型是用于多文件夹一个需求.方便挂分区 ...