現在很多軟件都加上了運動模塊,比如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哦!!!!!
github下載地址
趕快去試試吧
感謝觀看,歡迎評論和批評