当前位置:  编程技术>移动开发
本页文章导读:
    ▪NFC近场通信技术介绍        NFC近场通讯技术介绍 NFC简介 NFC(Near FieldCommunication) 是短距离非接触式的一种通信方式,它结合了非接触式感应以及无线连接技术,作用于13.56Mhz 频带,传输距离大约10CM 左右。传输速.........
    ▪ [ZT]UITableView下拉刷新页面的兑现        [ZT]UITableView下拉刷新页面的实现 UITableView下拉刷新页面的实现   以前看到facebook,人人和其他的一些应用,很多都使用了下拉列表,列表就重新加载数据的应用.感觉用户体验很好,但是一直没有.........
    ▪ 解决 xcode4编译出现No architectures to compile for (ARCHS=i386, VALID_ARCHS=)的有关问题       解决 xcode4编译出现No architectures to compile for (ARCHS=i386, VALID_ARCHS=)的问题    一些项目在Xcode4里编译的时候,会出现如下错误: Check dependencies [BEROR]No architectures to compile for (ARCHS=armv6 armv7, VALID_AR.........

[1]NFC近场通信技术介绍
    来源: 互联网  发布时间: 2014-02-18
NFC近场通讯技术介绍

NFC简介


NFC(Near FieldCommunication) 是短距离非接触式的一种通信方式,它结合了非接触式感应以及无线连接技术,作用于13.56Mhz 频带,传输距离大约10CM 左右。传输速度目前为106Kbit/s、212Kbit/s 或者424Kbit/s,将来可提高至1Mb 左右。它不仅符合ISO18092、ISO21481、ECMA(340,352 以及356)和ETSI TS 102190 标准,而且与采用ISO14443A、B 标准广泛应用的非接触智能卡基础设备兼容。如飞利浦的MIFARE 技术以及索尼的Felica 技术。

 

与其它短距离无线通信技术相比,NFC 更安全,反应时间更短,因此非常适合作为无线传输环境下的电子钱包技术,交易快速且具有安全性。除了支付功能,NFC 技术还可以提供各种设备间轻松,安全,迅速而自动的通信。例如NFC 可以帮助人们在不同的设备间交换信息,例如音乐、信息、照片、视频剪辑等,还可以购买新的信息内容。

 

NFC的三种工作模式

 

卡模式 :是指用于非接触移动支付,如商场、交通等应用中,用户只需要将手机靠近读卡器,然后用户只需输入密码确认交易或者直接接收交易即可。例如门禁管制,车票,门票等等。此种方式下,卡片通过非接触读卡器的RF 域来供电,即便是手机没电也可以工作。

 

点对点通信模式 :即实现无线数据交换,将两个具备NFC 功能的设备链接,能实现数据点对点传输,如下载音乐,交换图片或者同步设备地址薄。因此通过NFC,多个设备如数字相机,PDA,计算机,手机之间,都可以进行无线胡同,交换资料或者服务。


读卡器模式 :即作为非接触读卡器使用,比如从海报或者展览信息电子标签上读取相关信息。

 

NFC技术的几种实现

 

NFC手机方案

该方案中NFC 功能芯片和天线与手机的其他部分及SIM 卡相独立,但NFC模块与手机共用电池。电池有电时,NFC 模块可在主动、被动和双向三种模式下工作;电池断电时,只能在被动模式下工作,相当于普通的一卡通。手机开关机对NFC 模块无影响,即在手机关机时也可使用NFC 功能。

实现方式有两种:一是定制手机,将天线集成在手机电池或主板上,使NFC 应用与手机融为一体,工作稳定可靠,但需更换手机;二是将天线与NFC 芯片直接相连,然后与电池紧贴放在电池和手机后盖之间,用户不需更换手机。

此方案的不足在于,天线连接的可靠性不高;此外对手机的内部尺寸有特殊要求,增加天线之后影响了手机的便携性。此方案的NFC 模块不能和手机的处理器或SIM 卡通信,用户和电信运营商无法通过手机控制NFC 模块。这会造成信用卡发行商和手机制造商单独接触,完全脱离电信运营商的市场格局。另一方面,若要将NFC 模块收发的信息与蜂窝网络联系起来,须在NFC 模块和手机基带芯片间建立接口,且各层的设计都必须绕开运营商的控制,也无法直接读写SIM 卡,软硬件设计将变得非常复杂。此方案的优点是对不同技术、不同信用卡发行商的卡兼容性好,在全球已有很多案例,应用技术也比较成熟,比较适合试点期的项目。

 

双界面SIM 卡方案

该方案基于一种双界面智能SIM 卡,支持非接触式应用,同时也可实现普通手机SIM 卡的功能,在接听拨打电话、收发短信时不影响非接触式操作。两种实现方式与NFC 方案基本相同:一是定制手机;二是将天线与SIM 卡直接相连后放在电池和手机后盖之间,这样可只更换SIM 卡,降低成本,缺点也是天线连接的可靠性低、对手机尺寸要求高等。该方案占用了C4 和C8 接口,而这两个接口是用于高速数据下载的,可能会影响到未来高速空中下载应用。

 

带有USIM 卡安全功能的NFC 方案

此方案是目前的主推方案,分离了应用层和底层功能,把NFC 应用重要数据以及安全控制放在SIM 卡中,把NFC 功能芯片放在手机中。NFC 主控芯片通过SWP/HCI 协议与SIM 卡通信,不会占用原有的准备用于大容量卡的管脚。应用Midlet 与SIM 卡通过标准ISO7816 协议通信。用户更换SIM 卡时,可以带走现有的交易数据,实现彻底的机卡分离。


    
[2] [ZT]UITableView下拉刷新页面的兑现
    来源: 互联网  发布时间: 2014-02-18
[ZT]UITableView下拉刷新页面的实现

UITableView下拉刷新页面的实现

 

以前看到facebook,人人和其他的一些应用,很多都使用了下拉列表,列表就重新加载数据的应用.感觉用户体验很好,但是一直没有时间找相应的解决方法,今天终于有时间整理一下代码:

下图是实现的效果图,当用户下拉列表的时候,就出现向上的箭头.

 

实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh

实现过程很简单,下载相应的demo,然后拷贝资源文件和EGORefreshTableHeaderView.h和EGORefreshTableHeaderView.m到相依的工程中.在table所在的类中添加如下代码:

#import <UIKit/UIKit.h> 
#import "EGORefreshTableHeaderView.h" 
@interface iphone_navtaViewController : UIViewController 
<UITableViewDelegate,UITableViewDataSource,EGORefreshTableHeaderDelegate>{ 
    BOOL isflage; 
    IBOutlet UITableView *myTableView; 
   EGORefreshTableHeaderView *_refreshHeaderView; 
    BOOL _reloading; 

@property (nonatomic,retain) UITableView *myTableView; 
- (void)reloadTableViewDataSource; 
- (void)doneLoadingTableViewData; 
@end

 

实现方法:

#import "iphone_navtaViewController.h" 
@implementation iphone_navtaViewController 
@synthesize myTableView; 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    if (_refreshHeaderView == nil) { 
        EGORefreshTableHeaderView *view1 = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 10.0f – self.myTableView.bounds.size.height, self.myTableView.frame.size.width, self.view.bounds.size.height)]; 
        view1.delegate = self; 
        [self.myTableView addSubview:view1]; 
        _refreshHeaderView = view1; 
        [view1 release]; 
    } 
    [_refreshHeaderView refreshLastUpdatedDate]; 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 

- (void)viewDidUnload { 
    self.myTableView=nil; 
    _refreshHeaderView=nil; 

- (void)dealloc { 
    _refreshHeaderView=nil; 
    [self.myTableView release]; 
    [super dealloc]; 

#pragma mark – 
#pragma mark onClick 
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

      isflage=!isflage; 
    [super.navigationController setNavigationBarHidden:isflage animated:TRUE]; 
    [super.navigationController setToolbarHidden:isflage animated:TRUE]; 

#pragma mark – 
#pragma mark UITableView 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return 3; 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"tag"]; 
    if (cell==nil) { 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
                                       reuseIdentifier:@"tag"] autorelease]; 
    } 
    //表格设计 
    return cell; 

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

    return 100; 
}

#pragma mark – 
#pragma mark Data Source Loading / Reloading Methods

- (void)reloadTableViewDataSource{ 
    NSLog(@"==开始加载数据"); 
    _reloading = YES; 
}

- (void)doneLoadingTableViewData{ 
    NSLog(@"===加载完数据"); 
    _reloading = NO; 
    [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.myTableView];

#pragma mark – 
#pragma mark UIScrollViewDelegate Methods 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{    
    [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView]; 
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ 
    [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView]; 

#pragma mark – 
#pragma mark EGORefreshTableHeaderDelegate Methods 
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{ 
    [self reloadTableViewDataSource]; 
    [self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0]; 
}

- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{ 
    return _reloading; 

- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{ 
    return [NSDate date];     

@end

 

 

一个最重要的步骤,就是要添加QuartzCore.framework组建。

然后运行即可。


    
[3] 解决 xcode4编译出现No architectures to compile for (ARCHS=i386, VALID_ARCHS=)的有关问题
    来源: 互联网  发布时间: 2014-02-18
解决 xcode4编译出现No architectures to compile for (ARCHS=i386, VALID_ARCHS=)的问题

 

 一些项目在Xcode4里编译的时候,会出现如下错误:

Check dependencies

[BEROR]No architectures to compile for (ARCHS=armv6 armv7, VALID_ARCHS=).


解决方法如下:


在项目设置里Architectures下有个Valid Architectures选项,如果出现如上错误,该选项默认是空白的,将其

修改成armv6 armv7,然后编译就可以了!!!

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
jquery iis7站长之家
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪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