2013-02-09 223 views
6

目前我測試的GPS位置在Android中(與SDK工具修訂版21.0.1我嘗試了標準程序:Android模擬器地理修復無法設置GPS定位

  1. 創建一個模擬器啓用GPS(試過多種版本,從2.1到4.2)
  2. 啓動模擬器
  3. 的telnet到localhost:5554個
  4. 類型地理修復長緯度

理論上,這應該設置gps。

但下列跡象的位置設置不正確:

1.當我去maps.google.com或打開谷歌地圖,它總是抱怨不能決定我的位置,他們總是問我打開wifi

2. GPS似乎從未被激活 - 狀態欄上沒有圖標。

另外,我試過DDMS(這是不贊成的,當然我也試過Monitor)。似乎沒有發生。

我去以前的鏈接指向: Location not being updated on new geo fix in android emulator

Android - Unable to get the gps location on the emulator

GPS on emulator doesn't get the geo fix - Android

但所有這些鏈接似乎並沒有幫助。有Android項目頁面上的一些錯誤報告: http://code.google.com/p/android/issues/detail?id=13046

但這是一個很老的問題,並沒有達到最終的解決方案。

我想知道是否有其他人遇到類似的問題,請提供一些幫助。謝謝。

+0

我絕對可以證實這一點。它不起作用。有趣的是,如果我使用Android 2.1(或其他非常古老的東西)設置AVD,它的功能就像是一種魅力:geo修復了較長的緯度,並且該位置立即顯示在Google地圖應用中... – decades 2013-02-21 20:55:27

回答

1

希望你會看到圖標,它會work.working在我的。 API級別10

package com.example.locationsddf; 

import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    LocationManager lm; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final TextView tv = (TextView) findViewById(R.id.tv); 
     lm = (LocationManager) getSystemService(LOCATION_SERVICE); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() { 

      @Override 
      public void onStatusChanged(String arg0, int arg1, Bundle arg2) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onProviderEnabled(String arg0) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onProviderDisabled(String arg0) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onLocationChanged(Location arg0) { 
       tv.setText("Latitude: "+arg0.getLatitude()+" \nLongitude: "+arg0.getLongitude()); 

      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 

的Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.locationsddf" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="5" 
     android:targetSdkVersion="10" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.locationsddf.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

當圖標被通知,那麼你可以只是簡單的度日lm.getLastKnowLocation的位置,將工作

+0

我只是遵循你的代碼,我可以證實onLocationChanged事件被解僱並且收到了位置。但是,爲什麼像谷歌地圖這樣的應用程序,他們不是對GPS位置變化作出響應,仍然顯示「無法確定你的位置」等信息? – kkspeed 2013-02-10 09:23:38

+0

如果這就是答案,你可以通過點擊我帖子的左上角標記我的帖子爲答案。你可以發佈你的Logcat信息嗎? – 2013-02-10 14:13:54

0

有時也有與AVD本身的問題。嘗試切換到另一個CPU架構。我遇到過類似的問題,並通過在ARM和英特爾之間切換來解決。有時與谷歌服務AVD啓用也幫助

還玩弄「允許模擬位置」,在開發者選項

作爲替代方案,你可以試試這個客戶端: https://github.com/RomanTheLegend/Pokemon_NoGo/tree/master/Sources/PokemonNoGo 我寫它玩的小寵物,但它適用於任何基於GPS的應用程序。它所做的就是接受來自桌面客戶端的座標並嘲笑主系統GPS提供商 - LocationManager。GPS_PROVIDER

最後但並非最不重要的:在AVD中,您可以重放.kml文件。有很多服務可以幫助您生成一個服務。或者只是安裝「Lockito」,並從Android生成假座標

相關問題