Pergunta

Estou pensando em um aplicativo que usaria os lembretes GEO (aqueles adicionados no iOS5, Lembre-me em um local quando eu sair/chegar).Mas preciso usar esse recurso (na verdade, usando apenas a localização) para obter a localização atual e compará-la com a localização definida pelo meu aplicativo e verificar se é o mesmo local ou não.Se a localização atual e definida forem iguais, inicie meu aplicativo.

Isso é possível?

Espero que você entenda meu objetivo.desde já, obrigado

Foi útil?

Solução

Enquanto você poderá monitorar sua localização a partir do fundo, lembre-se, ele não será iniciado automaticamente seu aplicativo.Você pode usar algo como notificações locais para solicitar ao usuário abrir o aplicativo.Mas o lançamento do fundo automaticamente não é uma opção.Pelo menos não uma opção aprovada pela App Store.

Outras dicas

A verificação da região atual e da região definida é feita automaticamente quando você define uma região para monitorar.O melhor lugar para começar é lendo a documentação do CLLocationManagerDelegate, especialmente startMonitoringForRegion:.O que você deseja fazer é chamado de "Geofencing".Você também pode encontrar mais informações no Guia de reconhecimento de localização.

Como sou novo no desenvolvimento do iPhone, não sei como programar um aplicativo, mas posso ajudá-lo com o gatilho ao chegar em um local predefinido.aqui está o código.

1:importar CoreLocation.framework

2:no arquivo viewController.h coloque abaixo do código

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<CLLocationManagerDelegate>
@end

3:inviewController.m

#import "ViewController.h"
@interface ViewController (){
CLLocationManager *locationManager;
CLRegion *mexicoBoundary;
}

@end

@implementation ViewController

- (void)viewDidLoad
{
   [super viewDidLoad];

locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];



CLLocationCoordinate2D regionCords ;
//19.432608,-99.133208 lat, lon for mexico city
regionCords=CLLocationCoordinate2DMake(19.432608,-99.133208);
//5000 below, is in meters-radius 
mexicoBoundary =
[[CLRegion alloc]initCircularRegionWithCenter:regionCords
                                       radius:5000.0
                                   identifier:@"mexico_Day"];

[locationManager startMonitoringForRegion:mexicoBoundary];

}

-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
NSLog(@"%@: %@", @"region entered", region.identifier);

}

-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"%@: %@", @"region exited", region.identifier);
}



- (void)didReceiveMemoryWarning
{
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

@end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top