0

私のアプリでは、現在のユーザーの場所を使用するようにCllocation managerを実装しましたが、正常に機能します。ただし、アプリがバックグラウンドで入力または終了すると、GPS位置アイコンはiPodで自動的に非表示になります。Iphoneで同じことを試してみると、アイコンが非表示になりません。

だから、私はそれに対する解決策を見つけることができません。助けて!!

私のコードは次のとおりです。

AppDelegate.m

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

if(locationManager == nil)

        locationManager =[[CLLocationManager alloc] init];

    self.locationManager.delegate = self;

    self.locationManager.desiredAccuracy= kCLLocationAccuracyBest;

    self.locationManager.distanceFilter= 5;

    [locationManager startUpdatingLocation];
    [locationManager startUpdatingHeading];
}


-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{

    self.userLocation=newLocation;

    [self.locationManager startMonitoringSignificantLocationChanges];
}

Map.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    [APPDELEGATE.locationManager startUpdatingLocation];

}

- (void)viewWillAppear:(BOOL)animated
{
    self.map.delegate = self;

    [self.map setShowsUserLocation:YES];
}

iPodでアプリのロケーションサービスを手動で行った場合、アプリを閉じるとロケーションアイコンが表示されません。しかし、iPhoneで同じことをしようとすると、場所のアイコンが表示されます。

4

2 に答える 2

1

ついに私はこの問題を以下のように解決しました。

それ以外の

[self.locationManager startMonitoringSignificantLocationChanges]; 

appdelegateで

私は書きます、

[self.locationManager stopMonitoringSignificantLocationChanges];
于 2012-10-27T06:11:23.847 に答える
0

私はあなたが本当に欲しいものは次のとおりだと思います:

[self.locationManager stopUpdatingLocation];

その直後に、マネージャーが場所の大幅な変更で目を覚ますようにしたい場合は、次の電話番号に電話してください。

[self.locationManager startMonitoringSignificantLocationChanges];

逆は、継続的な更新に戻る場合に適用されます。

[self.locationManager stopMonitoringSignificantLocationchanges];
[self.locationManager startUpdatingLocation];

注:重要な場所の変更モードの場合でも、ステータスバーのアイコンは場所を継続的に更新する場合と同じように表示されます。保守的なモードでは、不要なときに位置情報サービスをシャットダウンしているため、これは心配する必要はありません。
iPodはstartMonitoringSignificantLocationChangesをサポートしていません。これが、2つのデバイスでインジケーターの動作が異なる理由です。

実装しているので、マネージャーの外の場所について最初のイベントレポートを使用していることを考慮する必要があります。これは、多くの場合、古くなっている、キャッシュされている、古い、または恐ろしく不正確である可能性があります。少しテストを行い、目的に応じてより適切な位置情報を取得する機会を与えるのが標準的な方法です。

位置情報サービスを使用する際の詳細については、Githubのハンドラーを参照してください。

于 2012-10-28T13:34:19.567 に答える