菜鸟教程小白 发表于 2022-12-13 10:17:44

ios - 在 iPhone 锁定和 sleep 时测距和监控信标


                                            <p><p>所以我正在创建一个 iOS 应用程序,并在后台搜索信标。一旦我的 iPhone 处于唤醒状态,它就可以正常工作,即使 iPhone 被锁定,它也能继续工作……但是 iPhone 必须仍然处于唤醒状态。一旦 iPhone 进入休眠状态,我的应用程序会再运行大约 10 次,然后停止。如果您唤醒 iPhone,它会再次开始测距。</p>

<p>我也尝试过监控,但没有成功。</p>

<p>如果可能的话,谁能告诉我这是否可行?我到处搜索,找不到答案!请在下面找到我的信标方法(在 AppDelegate 中)</p>

<pre><code> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [ setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

    self.locationManager = [ init];

    if() {
      ;
    }

    self.locationManager.delegate = self;
    self.locationManager.pausesLocationUpdatesAutomatically = NO;

    ;
    return YES;
}

-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
    if(beacons.count &gt; 0) {
      CLBeacon *nearestBeacon = beacons.firstObject;

      if (nearestBeacon.proximity == CLProximityImmediate || nearestBeacon.proximity == CLProximityNear) {
            NSLog(&#34;Beacon detected&#34;);
      }
    }
}

- (void)startRangingBeacons {
    self.beaconRegion = [ initWithProximityUUID:@&#34;EBEFD083-70A2-47C8-9837-E7B5634DF525&#34; identifier:@&#34;receptionBeacon&#34;];
    ;
}
</code></pre>

<p>任何帮助表示赞赏
谢谢
索尼娅</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>有一种方法可以唤醒您的手机。如果您的应用属于信标区域,那么,</p>

<pre><code>- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
</code></pre>

<p>上面的方法被自动调用。因此,您需要放置一些本地通知,例如“您靠近信标区”来唤醒手机。
但你必须重新进入该地区。</p>

<p>一旦您的应用进入该区域,请编写以下代码以重新启动信标进程,</p>

<pre><code>;
UIBackgroundTaskIdentifier bgTask = [
                                    beginBackgroundTaskWithExpirationHandler:^{
      NSLog(@&#34;End of tolerate time. Application should be suspended now if we do not ask more &#39;tolerance&#39;&#34;);
   [ endBackgroundTask:UIBackgroundTaskInvalid];
}];

if (bgTask == UIBackgroundTaskInvalid)
{
   NSLog(@&#34;This application does not support background mode&#34;);
} else {
   //if application supports background mode, we&#39;ll see this log.
   NSLog(@&#34;Application will continue to run in background&#34;);
}
</code></pre>

<p>希望这对你有用。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iPhone 锁定和 sleep 时测距和监控信标,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32376400/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32376400/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iPhone 锁定和 sleep 时测距和监控信标