2016-06-25 1 views
0

私は奇妙な問題に直面しています。私は、私のアプリケーションのためのいくつかのルートを模擬するためにGoogleによって提供された公式の模擬プロバイダのソースコードを修正しました。位置をモッキング - Googleマップは動きを検出しますが、自分のアプリケーションは位置の変更を引き起こさない

このコードを使用する。

mockLocation.setElapsedRealtimeNanos(elapsedTimeNanos); 
         mockLocation.setTime(currentTime); 

         // Set the location accuracy, latitude, and longitude 
         mockLocation.setAccuracy(mLocationList.get(index).getAccuracy()); 
         mockLocation.setLatitude(mLocationList.get(index).getLatitude()); 
         mockLocation.setLongitude(mLocationList.get(index).getLongitude()); 
         mockLocation.setSpeed(mLocationList.get(index).getGpsSpeed()); 
         mockLocation.setBearing(80); 
         mockLocation.setAltitude(mLocationList.get(index).getAltitude()); 



         // Inject the test location into Location Services 
         LocationServices.FusedLocationApi.setMockLocation(mLocationClient,mockLocation); 

のGoogleマップは、この動きを検出しますが、私のアプリケーションは、位置情報の更新

任意のアイデアを得ていないのですか?

答えて

0

このプロセス全体をループしていませんか?この、onLocationChanged方法がトリガされるたびにあなたをループ

private void startSpoofing(){ 
    LocationServices.FusedLocationApi.setMockMode(mGoogleApiClient, true); 
    while (mRunning) { 
     LocationServices.FusedLocationApi.setMockLocation(mGoogleApiClient, l); 
     l.setTime(System.currentTimeMillis()); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
      l.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos()); 
     } 

     try { 
      Thread.sleep(TIME_BETWEEN_UPDATES_MS); 
     } catch (Exception e) {} 
    } 
} 

関連する問題