2013-06-24 2 views
0

내 안드로이드 앱을위한 MockLocationListener를 설정했지만 Google 내비게이션과 함께 h9ow도 혼란스러워합니다. 나는 Google 탐색이 가짜 위치를 집어들 수 있을지 잘 모르겠다. 내가 구글 탐색 제대로 모의 위치를 ​​사용하고 있는지 모르겠어요모의에서 Google 내비게이션 사용법 위치

public class MainActivity extends Activity { 
    MockLocationProvider mock; 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mock = new MockLocationProvider(LocationManager.NETWORK_PROVIDER, this); 

    //Set test location 
    mock.pushLocation(-12.34, 23.45); 

    LocationManager locMgr = (LocationManager) 
     getSystemService(LOCATION_SERVICE); 
    LocationListener lis = new LocationListener() { 
     public void onLocationChanged(Location location) { 
      //You will get the mock location 
     } 
     //... 
    }; 

    locMgr.requestLocationUpdates(
     LocationManager.NETWORK_PROVIDER, 1000, 1, lis); 

    String dLat = "38.062419"; 
    String dLong = "-99.173584"; 
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" +dLat+","+dLong)); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    } 

    protected void onDestroy() { 
    mock.shutdown(); 
    super.onDestroy(); 
    } 
} 

:

public class MockLocationProvider { 
     String providerName; 
     Context ctx; 

     public MockLocationProvider(String name, Context ctx) { 
     this.providerName = name; 
     this.ctx = ctx; 

     LocationManager lm = (LocationManager) ctx.getSystemService(
      Context.LOCATION_SERVICE); 
     lm.addTestProvider(providerName, false, false, false, false, false, 
      true, true, 0, 5); 
     lm.setTestProviderEnabled(providerName, true); 
     } 

     public void pushLocation(double lat, double lon) { 
     LocationManager lm = (LocationManager) ctx.getSystemService(
      Context.LOCATION_SERVICE); 

     Location mockLocation = new Location(providerName); 
     mockLocation.setLatitude(lat); 
     mockLocation.setLongitude(lon); 
     mockLocation.setAltitude(0); 
     mockLocation.setTime(System.currentTimeMillis()); 
     lm.setTestProviderLocation(providerName, mockLocation); 
     } 

     public void shutdown() { 
     LocationManager lm = (LocationManager) ctx.getSystemService(
      Context.LOCATION_SERVICE); 
     lm.removeTestProvider(providerName); 
     } 
    } 

여기 내 활동 :

여기 내 MockLocationProvider입니다. 누군가가 모의 리스너와 함께 Google 내비게이션을 사용하는 방법을 알려 주시면 감사하겠습니다.

감사합니다.

+1

을 나는이 일이 당신에게 도움이 될 생각 [사용-A-모의 위치 -에 - 네비게이션 응용 프로그램을] [1] [1] : http://stackoverflow.com/questions/7071625/using-a-mock-location-in-navigation-app –

답변

0

위치를 수동으로 설정해야합니다. (윈도우 WIN + R의 "cmd"를 실행) 터미널을 열고 에 입력

> telnet localhost 5554 (depending on the Number displayed at you emulator) 

> geo fix latitude* longitude* height* 

* (높이)없이 예를 들어

지리적 고정 7.1534 54.46343

관련 문제