当前位置:  编程技术>移动开发
本页文章导读:
    ▪【破译草稿1】每一步的验证步骤        【破解草稿1】每一步的验证步骤 1、修改了post_userInfo的数据√2、如果还错,就检查url的参数install√3、如果还错,就用手机正常安装一次有你,换个imei用pc装一次有你,对比二者的数据包.........
    ▪ NSString,char*NSData,NSUrl变换        NSString,char*,NSData,NSUrl转换 1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length])); 与strcpy相比,memcpy并不是.........
    ▪ 从起动InCallScreen之后开始说起       从启动InCallScreen之后开始说起 前提:系统为android4.0当android系统接到一个来电的时候,会从framework启动InCallScreen界面,然后当然是停留在这个界面等待响应了。这里有一个InCallTouchUi类,来响.........

[1]【破译草稿1】每一步的验证步骤
    来源: 互联网  发布时间: 2014-02-18
【破解草稿1】每一步的验证步骤
1、修改了post_userInfo的数据√


2、如果还错,就检查url的参数
install√

3、如果还错,就用手机正常安装一次有你,换个imei用pc装一次有你,对比二者的数据包


失败的原因
手机激活一次后列表中的设备名字段为htc desire hd故pc也要改成这个


手机换个imei先不激活,让pc直接下一个有你,再激活查看是否有积分×只显示安装,但没有积分

手机激活后,打开offerlist,在用pc offer show down install×只显示安装,但没有积分


手机激活后,打开offerlist,show再用pc down install×只显示安装,但没有积分

手机激活后,offerlist,show,donw,再用pc install√安装了,又有积分

手机激活后,浏览器 offerlist, show, down, pc install √安装了,又有积分

pc激活,浏览器 offerlist, show, down, pc install √安装了,又有积分




imei可能不一定要有效,可以用一半真实一半生成


思路1
install完了以后再show,offer,这两个提交两次
思路2
添加cookie管理属性 httpclient.getParams().setCookiePolicy(

    
[2] NSString,char*NSData,NSUrl变换
    来源: 互联网  发布时间: 2014-02-18
NSString,char*,NSData,NSUrl转换
1. NSString转化为UNICODE String:
(NSString*)fname = @“Test”;
char fnameStr[10];
memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length]));
与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节
 2. NSString 转化为 char *
NSString * str= @“Test”;
const char * a =[str UTF8String];
3.char * 转化为 NSString
NSString *str=[NSString stringWithCString  encoding:NSUTF8StringEncoding]; 
 4. char * 转化 NSData
 方法一:
   char * a = (char*)malloc(sizeof(byte)*16);
   NSData *data = [NSData dataWithBytes: a   length:strlen(a)];
 方法二:
    转换为NSString: - (id)initWithUTF8String:(const char *)bytes
    然后用NSString的 - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
 5. NSData 转化 char *
  NSData data ;
  char* a=[data bytes];
 6. NSData 转化 NSString;
NSData* data;
NSString* aStr= [NSString alloc] initWithData:data   encoding:NSASCIIStringEncoding];
 7. NSString 转化 NSData对象
NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; 
 8.NSString 转化 NSURL  
 //NSURL *url = [NSURL URLWithString:[str   stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]]; 
NSString *urlString=[@"http://www.google.com/search?client=safari&rls=en&q=搜索&ie=UTF-8&oe=UTF-8" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 9.NSURL 转化 NSString
NSURL *url=[NSURL URLWithString:urlString];
NSString *s=[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSArray *arr = [urlStr componentsSeparatedByString:@"&"]; 
NSURL *url = [NSURL URLWithString:[[arr objectAtIndex:0] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
NSMutableArray *_array = [[NSMutableArray alloc] initWithCapacity:0]; 
for (int i = 1; i < [arr count]; ++i ){ 
NSString *str = [arr objectAtIndex:i]; 
[_array addObject:str]; 
} 
[_array componentsJoinedByString:@"&"]; 
NSData *data = [[_array componentsJoinedByString:@"&"] dataUsingEncoding: NSASCIIStringEncoding]; 
[request setHTTPBody:data];
 // 发送请求并获得服务器反馈的数据
    NSData *urldata = [AESEnCDeCViewController Get:url];
    // 第一种 转换NSData数据到char*字符串
    char * test = (char*)[urldata bytes];
    std::string old = deaes(test);
    // 第二种 转换NSData到UTF8编码的NSString中再转换为char*字符串
//    NSString *desStr = [[NSString alloc] initWithData:urldata encoding:NSUTF8StringEncoding];
//    const char *desresult = [desStr UTF8String];
//    std::string old = deaes(desresult);
    // 解密字字符串到明文
    NSString *oldstr = [[NSString alloc] initWithCString:old.c_str()];
很多时候软件读取的中文网页编码集是gb2312,所以显示出来的是乱码。这时需要将NSString文字编码转换
1 NSURL *url = [NSURL URLWithString:urlStr];
2 NSData *data = [NSData dataWithContentsOfURL:url];    
3 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);    
4 NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];
  
文件存在几种形式:
NSData 最基本的字节流,在文件传输的过程中,首先需要decoder解码转化为一个字节流,然后传输,接收数据时需要encoder编码,必须保证编码正确才能显示出正确的数据。一般传递的数据为string,file,文件包括:二进制文件,音频,图像,文本文件等,文本文件一般是xml,json,jsp等文件,里面包含了数据。
NSString,NSDictionary 这是在程序中使用的数据,包括了不同的数据存储形式
NSFile 持久性存储的一种形式

    
[3] 从起动InCallScreen之后开始说起
    来源: 互联网  发布时间: 2014-02-18
从启动InCallScreen之后开始说起
前提:系统为android4.0
当android系统接到一个来电的时候,会从framework启动InCallScreen界面,然后当然是停留在这个界面等待响应了。
这里有一个InCallTouchUi类,来响应了你的操作。有拒接,接听和通过sms响应。
来电后,从
InCallScreen的updateIncomingCallWidgetHint()调用
mCallCard.setIncomingCallWidgetHint(hintTextResId, hintColorResId);
            mCallCard.updateState(mCM);这两个方法,前面一个是用来显示当前电话状态的文本,后面一个用来更新状态。这个时候的状态为Phone.State.RINGING,
继续调用CallCard中的updateRingingCall(cm);然后调用 displayMainCallStatus(cm, ringingCall);
        displayOnHoldCallStatus(cm, null);

--->mPrimaryCallInfo.setVisibility(View.VISIBLE);---> updateCallStateWidgets(call);----updateDisplayForPerson()---->updatePhotoForCallState(),这个主叫号码的显示就完成了,
---------------------------分割线-------------------------------
然后displayOnHoldCallStatus(cm, null);用来显示被保持的电话的界面。
当你接听电话的时候,会有一个回调函数onTrigger()函数响应,此时里面的whichHandle参数为ANSWER_CALL_ID,到达onTrigger()函数之后,首先调用 hideIncomingCallWidget();来把这个界面隐藏掉。然后调用mInCallScreen.handleOnscreenButtonClick(R.id.incomingCallAnswer);来响应接听按钮。
接下来到达InCallScreen的handleOnscreenButtonClick方法,进入internalAnswerCall();然后进行网络的判断,我这个是到达PhoneUtils.answerCall(ringing)这个ringing对象如下
Call ringing = mCM.getFirstActiveRingingCall();
-----------------------分割线--------------------------------------------
最终到达InCallScreen的updateScreen()---> updateInCallTouchUi();这个用来更新下面的静音,拨号盘之类的按钮,接下来是mCallCard.updateState(mCM);
       ----> updateDialpadVisibility();
        -----> updateProviderOverlay();
        ------> updateProgressIndication();
这几个方法的调用。
进入updateInCallTouchUi()后,就调用mInCallTouchUi.updateState(mCM);进入InCallTouchUi的updateState方法中。然后是调用InCallTouchUi中的updateInCallControls(cm);方法,用来显示通话状态时的ui界面。(InCallTouchUi类对应的layout是incall_touch_ui.xml),

对于R.id.holdButton和R.id.swapButton的点击处理,是在mInCallScreen.handleOnscreenButtonClick(id);中,

而对于CallCard对应的layout是call_card.xml


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
博客 iis7站长之家
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3