手把手教你修改iOS版QQ的运动步数
手把手教你修改iOS版QQ的运动步数
现在很多软件都加上了运动模块,比如QQ和微信,而且还有排行榜,可以和好友比较谁的运动步数多,任何东西只要添加了比较功能,就变得不一样了。今天教大家用代码去修改QQ上的运动步数,修改完效果是这样的:
本帖子是抱着学习的心态来看待这个功能的,如果不喜欢请略过。
1准备工作
你需要一个iOS程序员所需要的设备:一个mac系统的电脑、一个Xcode、一个开发者账号(用开发者账号这是因为要使用HealthKIt框架,就必须开启授权)、还有一个苹果手机.
2新建项目
既然你都有开发者账号了,这我就只介绍重要的东西了,像怎么新建项目就不说了。
1.添加HealthKit.famework库。
2.开启授权,将Healthkit开关打开.如图:
打开开关后会自动下载一个文件是后缀是:.entitlement的文件,如上图文件目录。
3 上代码
1引入头文件
#import <HealthKit/HealthKit.h>
2初始化 HKHealthStore
HKHealthStore —— 关键类(使用HealthKit框架必须创建该类)
self.healthStore = [[HKHealthStore alloc] init];
3发出具体的请求许可,这里我们只需要写入步数就可以。
创建步数类型
HKQuantityType *stepCountType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
NSSet *writeDataTypes = [NSSet setWithObjects:stepCountType, nil];
发出具体的请求许可
[self.healthStore requestAuthorizationToShareTypes:writeDataTypes readTypes:readDataTypes completion:^(BOOL success, NSError *error) {
if (!success) {
//失败了
return;
}
}];
程序运行到这就回弹出健康的那个提示界面了,选择允许选项。
4 设置步数并且保存
//数据看类型为步数.
HKQuantityType *quantityTypeIdentifier = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
//表示步数的数据单位的数量
HKQuantity *quantity = [HKQuantity quantityWithUnit:[HKUnit countUnit] doubleValue:100];
//数量样本.
HKQuantitySample *temperatureSample = [HKQuantitySample quantitySampleWithType:quantityTypeIdentifier quantity:quantity startDate:[NSDate date] endDate:[NSDate date] metadata:nil];
//保存
[self.healthStore saveObject:temperatureSample withCompletion:^(BOOL success, NSError *error) {
if (success) {
//保存成功
}else {
//保存失败
}
}];
那个100就是增加的步数了。
然后打开手机里的健康应用,你会发现步数增加了。再打开QQ里的运动,步数也增加了。理论上来说只要软件的步数是从健康应用里获取的就都可以改变,不只是QQ哦!!!!!
demo:https://github.com/idage/idageChangeQqSport

手把手教你修改iOS版QQ的运动步数的更多相关文章
- 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- 手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)
手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objective-c 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流 ...
- 转载:手把手教你做iOS推送
手把手教你做iOS推送 http://www.cocoachina.com/industry/20130321/5862.html
- 用 Python 修改微信(支付宝)运动步数,轻松 TOP1
用 Python 修改微信(支付宝)运动步数,轻松 TOP1 项目意义 如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该py ...
- 手把手教你ARC——iOS/Mac开发ARC入门和使用
转载自:http://www.onevcat.com/2012/06/arc-hand-by-hand/ 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和 ...
- 手把手教你修改pcduino系统默认的音频输出
最近要搞个小玩意儿,要用到pcduino的音频输出,但是系统默认的是输出到hdmi的音频,我的显示器上没有喇叭,只能搞个USB声卡.但是系统默认又不是输出到USB,这里我手把手叫你怎么设置系统默认声卡 ...
- 手把手教你安装mac版hadoop2.7.3教程
一.准备教程 1.jdk:版本在1.7.x以上就可以(因为hadoop2.x以上只支持1.7.x以上的jdk,我的是1.8的) 2.Hadoop:2.7.3 二.ssh的配置以及验证 配置ssh: 1 ...
- Android自定义View实现仿QQ实现运动步数效果
效果图: 1.attrs.xml中 <declare-styleable name="QQStepView"> <attr name="outerCol ...
随机推荐
- 源码搭建LNMP
源码安装LNMP 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 前言:非常简单的一个平台LNMP,在生产实际环 ...
- paper 38 :entropy
图像熵计算 真是为了一个简单的基础概念弄的心力交瘁,请教了一下师姐,但是并没有真的理解,师弟我太笨呀~~所以,我又查熵的中文含义和相关的出处!共勉吧~~ 1.信息熵: 利用信息论中信息熵概念,求出任意 ...
- android之费电检查 BetterBatteryStats
今天老大给了一个任务,是说我们的应用在后台时,还会比较费电!让我查一下 我立马头大了!无从下手! 一.赶紧百度,得到以下几个信息: ①费电的操作有:大数据量的传输;不停的在网络间切换;解析大量的文本数 ...
- div内的img下出现几像素的空白间距解决办法
现象描述: 解决方法: 1.设父元素的font-size:0; 2.设img为display:block; 3.设img为vertical-align:middle;
- java.io.DataInput接口和java.io.DataOutput接口详解
public interface DataInput DataInput 接口用于从二进制流中读取字节,并重构所有 Java 基本类型数据.同时还提供根据 UTF-8 修改版格式的数据重构 Strin ...
- Java笔试题解答和部分面试题
面试类 银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...
- python爬虫框架scrapy实例详解
生成项目scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码.打开命令行,执行:scrapy st... 生成项目 scrapy提供一个工具来生成项目,生 ...
- eclipse Juno Indigo Helios Galileo这几种版本的意思
Eclipse 3.1 版本代号 IO [木卫1,伊奥] Eclipse 3.2, 30-06-2006, Callisto projects, 版本代号 Callisto [木卫四,卡里斯托 ] ...
- Linux/Unix中的#!和!#
是不是在Terminal输入命令的时候,输入了很长的一个路径,然后发现还有在同一条命令中再输一次的时候很恼火,其实Shell是提供了trick的,就是使用!#(和#!不同哦) 习惯写脚本的猿,通常对于 ...
- android 中的几种目录
1. context.getExternalFilesDir() ==> /sdcard/Android/data/<package_name>/files/ 一般放一些长时 ...