gpt4 book ai didi

objective-c - 如何在 tvOS 中获取 Apple TV 设备的当前位置

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:41 25 4
gpt4 key购买 nike

我有以下运行但始终调用 didFailWithError 委托(delegate)方法的代码。是否有可能在 tvOS 中获取 Apple TV 设备的位置?
AppDelegate.h

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate, CLLocationManagerDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, retain) CLLocationManager *locationManager;

@end

AppDelegate.m

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

NSLog(@"locationManager requestLocation");
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager requestLocation];

return YES;
}

-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"locationManager didFailWithError %@", error);
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {
NSLog(@"locationManager didUpdateLocations");
}

控制台显示:
locationManager didFailWithError Error Domain=kCLErrorDomain Code=0 "(null)"

编辑:我还将 NSLocationWhenInUseUsageDescription 添加到 .plist 并添加了

[self.locationManager requestWhenInUseAuthorization];

代替上面的[self.locationManager requestLocation]。我添加了 didChangeAuthorizationStatus 委托(delegate)方法并将调用移动到那里的 requestLocation。执行此操作后,didChangeAuthorizationStatus 被调用,状态值为 kCLAuthorizationStatusNotDetermined,并且没有弹出任何权限请求要求“不允许”或“允许”,随后对 requestLocation 的调用仍然触发 didFailWithError 。我尝试从 Apple TV 中完全删除该应用程序,认为这可能是一次性弹出窗口,但 requestWhenInUseAuthorization 仍然没有执行任何提示权限的操作。

只有在手动进入 Apple TV 设置 - 常规 - 隐私 - 定位服务,然后找到我的应用程序并将设置从“从不”手动更改为“使用应用程序”。这显然不理想,如果 requestWhenInUseAuthorization 实际上会提示用户选择会更好。

最佳答案

仅根据发布的代码,您在这样做之前并未请求使用定位服务的授权。您需要在 CLLocationManager 实例上调用 requestWhenInUseAuthorization。在尝试使用它之前调用 authorizationStatuslocationServicesEnabled 通常也是明智的。你可以read more in the docs .

关于objective-c - 如何在 tvOS 中获取 Apple TV 设备的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33559049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com