Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
287 views
in Technique[技术] by (71.8m points)

iphone - Simulating location changes for `startMonitoringSignificantLocationChanges`

I am writing an iPhone app and using Location Services. I am using the startMonitoringSignificantLocationChanges method on CLLocationManager. (As I understand, this is for low power, low accuracy location services.) When I build and launch my app in iOS Simulator, it gets my location fine. However, I want to simulate updates to the location beyond the initial fix.

I did notice these two options:

  • iOS Simulator : Debug > Location menu
  • Xcode 4: Product > Debug > Simulate Location menu

Both of these work acceptably for simulating an initial fix. (For example, choose 'Apple' from the former, or 'Moscow' from the latter.) However, subsequent changes to either of these will NOT trigger another location update in the simulated app.

What I desire is to be notified when the simulated location changes when using startMonitoringSignificantLocationChanges. (iOS Simulator does generate a series of updates when I use startUpdatingLocation instead.) This makes it way easier to test location-enabled applications without taking the device out into the field.

Two questions:

  • What is the difference between these two?
  • How do I use iOS Simulator and/or Xcode 4 to simulate a series of location changes?

Cheers.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If you want to make a track, you can create a GPX file with waypoints like this:

<?xml version="1.0" encoding="UTF-8"?>
<gpx>
    <wpt lat="52.373" lon="4.871"></wpt>
    <wpt lat="52.374" lon="4.872"></wpt>
    <wpt lat="52.375" lon="4.871"></wpt>
</gpx>

Save it as track.gpx. Be careful of having no whitespace at the start.

When you Build and Run, there's a toolbar at the bottom of Xcode with a location arrow (similar to the one on iPhones). It's for "Simulate Location". Click there and load in your GPX file. When your app is running in the Simulator, the blue dot should move around. I don't think there's a way to control the timing, so it updates its location every half second or so.

The difference I can see in the Simulator menu is that you can't have a custom track, only a custom point. I don't know why the menus options are different, they'll probably add an option for a custom track in the Simulator at some point.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...