手把手教你修改iOS版QQ的運動步數
現在很多軟件都加上了運動模塊,比如QQ和微信,而且還有排行榜,可以和好友比較誰的運動步數多,任何東西只要添加了比較功能,就變得不一樣了。今天教大家用代碼去修改QQ上的運動步數,修改完效果是這樣的:

屏幕快照 2016-06-21 下午5.02.56.png
本帖子是抱着學習的心態來看待這個功能的,如果不喜歡請略過。
1准備工作
你需要一個iOS程序員所需要的設備:一個mac系統的電腦、一個Xcode、一個開發者賬號(用開發者賬號這是因為要使用HealthKIt框架,就必須開啟授權)、還有一個蘋果手機.
2新建項目
既然你都有開發者賬號了,這我就只介紹重要的東西了,像怎么新建項目就不說了。
1.添加HealthKit.famework庫。
2.開啟授權,將Healthkit開關打開.如圖:

786E95C6-E1E0-4272-BFBF-D19FBF4CE9AB.png
打開開關后會自動下載一個文件是后綴是:.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