문제

는 경우에는 앱에 액세스해야 Motion Activity 데이터 요청에 사용자가 설치합니다.그러나 사용자가 실수로 답'없다',다음 응용 프로그램이 작동하지 않습니다.

내가 찾는 방법을 확인하려면 모션 활동은 사용하도록 설정되어 있으므로 나는 사용자에게 메시지를 표시 할 수 있습을 경우 사용하지 않습니다.

할 수 있는 누군가가 나에 올바른 방향으로 코드를 현명하십시오?


다음과 같은 정보에서 Doc(감사합니다),그것은 보인다는 애플을 제공하지 않 직접적인 방법의 상태를 확인하려면 Motion Activity 개인 정보 보호.었을 찾을 수있을 따기에 의해 오류가:-

[stepCounter queryStepCountStartingFrom:[NSDate date]
                                     to:[NSDate date]
                                toQueue:[NSOperationQueue mainQueue]
                            withHandler:^(NSInteger numberOfSteps, NSError *error) {
                                if (error != nil && error.code == CMErrorMotionActivityNotAuthorized) {
                                    // The app isn't authorized to use motion activity support.
}
도움이 되었습니까?

해결책

새로운 아이폰 os 에서 11,CMSSensorRecorder 는 정적이라는 방법 authorizationStatus 를 검색할 수 있습니다.

+ (CMAuthorizationStatus)authorizationStatus;

다른 팁

Apple 가 샘플 프로젝트 는 방법을 확인하고 요청에 대한 액세스는 모든 다양한 권한을(를 포함하여 모션 활동) .난 당신이 빠른 모습에서-그것은 매우 간단합니다.

새로운 아이폰 os 에서 9, CMSensorRecorder(doc 링크 는)클래스 메소드를 확인하려면 앱 승인에 대한 동의 및 피트니스:

  • Switft class func isAuthorizedForRecording() -> Bool
  • Objective-c + (BOOL)isAuthorizedForRecording

는 방법에 대해 이?

- (void)checkMotionAuth {
    switch ([CMMotionActivityManager authorizationStatus])
    {
        case CMAuthorizationStatusNotDetermined:
        {
            CMMotionActivityManager *manager = [[CMMotionActivityManager alloc]init];
            [manager queryActivityStartingFromDate:[NSDate date]
                                            toDate:[NSDate date]
                                           toQueue:[NSOperationQueue mainQueue]
                                       withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {

                                           if ([CMMotionActivityManager authorizationStatus] == CMAuthorizationStatusAuthorized)
                                           {
                                               NSLog(@"Authorized");
                                           }
                                           else
                                           {
                                               NSLog(@"Denied");
                                           }
                                       }];
        }
            break;
        case CMAuthorizationStatusRestricted:
        case CMAuthorizationStatusDenied:
        {
            NSLog(@"Denied/Restricted");
        }
            break;
        case CMAuthorizationStatusAuthorized:
        {
            NSLog(@"Authorized");
        }
        default:
            break;
    }
 }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top