Android在開發人員選項中有一個選項來模擬位置。如果我的理解是正確的,如果你設置這個位置,應用程序將開始獲取這個位置,而不是實際位置?獲取實際位置而不是模擬位置
如果是這種情況,我們如何獲得實際位置,而不管此選項中設置的是什麼?
如果情況並非如此,那麼實際使用的模擬位置何時(僅在模擬器中?)?
Android在開發人員選項中有一個選項來模擬位置。如果我的理解是正確的,如果你設置這個位置,應用程序將開始獲取這個位置,而不是實際位置?獲取實際位置而不是模擬位置
如果是這種情況,我們如何獲得實際位置,而不管此選項中設置的是什麼?
如果情況並非如此,那麼實際使用的模擬位置何時(僅在模擬器中?)?
按我的瞭解,我們cant't得到實際的位置,如果我們使用MOKE位置,
使用莫克位置
假設你正在開發在澳大利亞地區一個應用程序,並且希望在美國環境中測試您的應用程序(僅限位置),而不去那裏,在這種情況下,我們使用Moke位置。
我覺得位置來自android frameworks庫,而這些apis寫的是這樣,如果你設置了moke位置,那麼api只會優先考慮moke位置。所以,如果你想使用實際的位置,你需要停止moke loaction。
您可以編寫自己的API,這將直接對話,GPS,那麼可能是你會做的,但其主要項目本身
編輯
您可以檢查MockSetting選項是打開還是關閉
/**
*returns true if mock location enabled, false if not enabled.
**/
public static boolean isMockLocationStatus(Context context) {
if (Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
return false;
else
return true;
}
我可以停止嘲笑位置,但如果我的應用程序依賴於正確的位置,用戶仍然可以輕鬆地僞造它。如果你想提供基於位置的安全性,那麼有什麼進展? – ata
我已編輯我的答案請審查。 –
可以使用以下方法http://developer.android.com/reference/android/location/Location.html#isFromMockProvider()過濾模擬位置,然後顯示某種信息的用戶來停止假的位置提供河 – Manish