Отправить текущее местоположение с помощью SMS - PullRequest
4 голосов
/ 12 марта 2012

Я пытаюсь, чтобы мое приложение могло отправлять свое текущее местоположение GPS через SMS на предварительно введенный номер телефона.

У меня сейчас есть мой код, который вызывает только окно SMS внутри приложения, в котором я могу редактировать номер получателя и текст сообщения.Что мне интересно, так это как мне узнать текущее местоположение в этом теле, чтобы его можно было отправить через SMS?Не могу понять.

Вот так выглядит мой код в отношении функции SMS.

-(IBAction) sendInAppSMS:(id) sender
{
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = @"Alarm!, call the senders number!";
        controller.recipients = [NSArray arrayWithObjects:@"phonenumber1", @"phonenumber2", nil];
        [self presentModalViewController:controller animated:YES];
    }
}

1 Ответ

1 голос
/ 12 марта 2012

Сначала добавьте базовую структуру местоположения в ваш проект. и вызовите этот метод для поиска текущего местоположения.

 -(IBAction) sendInAppSMS:(id) sender
    {
        MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
        if([MFMessageComposeViewController canSendText])
        {
            CLLocation *location=[self findCurrentLocation];
            CLLocationCoordinate2D coordinae=[location coordinate];
            controller.body =[[NSString alloc] initWithFormat:@" Alarm!, call the senders number with latitude:%f longitude:%f",coordinae.latitude,coordinae.longitude]; ;
            controller.recipients = [NSArray arrayWithObjects:@"phonenumber1", @"phonenumber2", nil];
            [self presentModalViewController:controller animated:YES];
        }
    }

-(CLLocation*)findCurrentLocation
           {

            CLLocationManager *locationManager = [[CLLocationManager alloc] init];
            if ([locationManager locationServicesEnabled])
            {
                locationManager.delegate = self; 
                locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
                locationManager.distanceFilter = kCLDistanceFilterNone; 
                [locationManager startUpdatingLocation];
            }

            CLLocation *location = [locationManager location];
            CLLocationCoordinate2D coordinate = [location coordinate];
         return location;

    }
...