對 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 給手機定位。
請問一下這個函式的作用程序大概是怎樣呢?
回覆刪除我設定了執行卻總是Failed
謝謝
版主回覆:(09/19/2011 10:04:56 AM)
這...我也不知道 XD 當時是用 Android 2.2
剩下的只好自行看錯誤訊息 & Google 囉