公告版位

新版部落格:blog.changyy.org

DDMSLocation

對 Android 模擬器來說,可以透過 DDMS 模擬 GPS 座標及其變化,然而在實體機器上卻沒看到幾篇相關文章?之所以用實體機器的主因,實在是平板模擬器跑太慢了!程式還是在實體機器跑得順多囉。

用法:

在 AndroidManifest.xml 檔案中,增加 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 設定。

新增函數:

public void setMockLocation(double latitude, double longitude)
{
    LocationManager testLM = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
   if( testLM != null )
   {
      try
      {
         String mocLocationProvider = testLM.GPS_PROVIDER;
         testLM.addTestProvider(mocLocationProvider, false, false, false, false, false, false, false, 0, 5);
         testLM.setTestProviderEnabled(mocLocationProvider, true);
         Location loc = new Location(mocLocationProvider);
         loc.setTime(System.currentTimeMillis());
         loc.setLatitude(latitude);
         loc.setLongitude(longitude);
         testLM.setTestProviderLocation(mocLocationProvider, loc);
         Toast.makeText(getApplicationContext(), "MockGPS Set", Toast.LENGTH_SHORT).show();
      }
      catch( Exception e )
      {
         Toast.makeText(getApplicationContext(), "MockGPS Failed", Toast.LENGTH_SHORT).show();
      }
  }
  else
      Toast.makeText(getApplicationContext(), "No LocationManager", Toast.LENGTH_SHORT).show();
}

之後,在程式碼中就可以透過 setMockLocation(0,0) 用來,來模擬假的 GPS 囉,最大的缺點仍是需要寫程式。

 應用:

除了在應用程式中模擬 GPS 的測試外,這東西應該有機會跟其他 GPS 定位裝置結合,例如用藍芽傳輸或 wifi 傳輸的 GPS 定位裝置,把收到的 GPS 給手機定位。


, ,

changyy 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • xd05317
  • 請問一下這個函式的作用程序大概是怎樣呢?
    我設定了執行卻總是Failed
    謝謝
  • 這...我也不知道 XD 當時是用 Android 2.2
    剩下的只好自行看錯誤訊息 & Google 囉

    changyy 於 2012/09/26 09:00 回覆