2011-08-15 3 views
1

모든 LocationListener 속성의 함수에서 매우 간단한 Log.i() 호출로 DDMS 위치 모형을 사용하려고합니다. 프로그램을 시작할 때 에 대한 메시지가 LogCat에 Log.i()으로 표시되므로 리스너를 올바르게 등록했다고 생각합니다. 그러나 Eclipse에서 DDMS 메뉴를 사용하여 VM에 위치를 지정할 때 아무 것도 얻을 수 없습니다. LogCat, Console 또는 VM 내부에서 변경되지 않습니다. 마치 아무 일도 없었던 것처럼.Android DDMS GPS 위치가 삽입되었지만 시스템의 아무 곳에서도 반응이 없음

어떻게 문제를 찾을 수 있습니까? 매니페스트 여기

public class gpsActivity extends Activity { 

    private static final String TAG="gpsActivity"; 
    private static TextView label; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     label = (TextView) findViewById(R.id.label); 
     LocationManager manager = (LocationManager) this 
       .getSystemService(LOCATION_SERVICE); 
     LocationListener listener = new LocationListener() { 
      @Override 
      public void onStatusChanged(String arg0, int arg1, Bundle arg2) { 
       Log.i(TAG, "onStatusChanged: "+arg0); 
      } 
      @Override 
      public void onProviderEnabled(String arg0) { 
       Log.i(TAG, "onProviderEnabled: "+arg0); 
      } 
      @Override 
      public void onProviderDisabled(String arg0) { 
       Log.i(TAG, "onProviderDisabled: "+arg0); 
      } 
      @Override 
      public void onLocationChanged(Location location) { 
       Log.i(TAG, "onLocationChanged"); 
      } 
     }; 
     manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 0, 
       listener); 
     setContentView(R.layout.main); 
    } 
} 

과 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.mypackage.example.gps" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="3" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".gpsActivity" 
        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> 
또한

다른 쪽 참고로, 나는 독일의 Windows XP를 사용하고 발견하고 여기에

은 내 간단한 GPS 이벤트 로거에 대한 코드입니다 독일 시스템에서 1/2의 숫자 형식은 0.5가 아니지만 0.5이므로 GPS 파서 문법에 오류가 발생하기 때문에 GPS 패키지에 문제가 있다는 것을 알았습니다. 또한 시스템 번호 형식을 영어 (미국)로 변경해도 메시지, 예외 또는 결과가 전혀 나타나지 않는다고 변하지 않았습니다.

+0

두 개 이상의 장치가 연결되어 있습니까? DDMS는 연결된 모든 장치를 보여 주므로 참고로 적절한 장치를 선택해야합니다. –

+0

연결된 장치가 없습니다.SDK의 VM 만 DDMS는 또한 하나의 장치 인'emulator -....'와 그에 따른 프로세스만을 보여줍니다. – erikbwork

+1

청취자를 설치 한 곳에서 코드를 게시하면 문제에 대한 더 많은 정보를 얻을 수 있습니다. –

답변

1

이 WIFI를 통해 신호이다. 그들 모두를 찾는 것이 순전히 연구 시간으로 12 시간 이상이 걸렸기 때문에 나는 심지어 그 근원을 다시 찾지 않을 것이라고 생각합니다. 후자에 활성화되지 nesssesary 일이 있기 때문에

  1. 당신은 Android <version>을 대상으로 Google API <version>를 사용하지 않아야 곳

    문제는있었습니다.

  2. 특히 미국 이외의 버전의 Windows를 사용하는 경우 DDMS가 불확실하고 문서화되지 않은 기록 된 결과를 생성하므로 DDMS가 아닌 텔넷을 통해 업데이트를 보내야합니다.
  3. 에뮬레이터의 표준 시간대는 자동으로 선택되지만, 잘못된 로케일 (예 : 독일의 경우)이 될 수 있습니다. Android 설정에서 실행중인 에뮬레이터를 끄고 올바른 로케일을 선택할 수 있습니다. 이것은 이전 버전의 Android에서만 나타납니다.

이런 종류의 오류가 발생하면 모두에게 행운을 빈다.

1

DDMS의 장치 메뉴에서 장치/에뮬레이터가 선택되어 있는지 확인하십시오.

편집 :

나는 이것들을 더 일찍 보았어 야했다 :

당신은 NETWORK_PROVIDER을 사용하고있다. DDMS에서 모의 ​​위치를 ​​수신하려면 (geo을 통한 명령 행이라고 생각하면) GPS_PROVIDER을 등록해야합니다. 귀하의 코드에서 onCreate 메소드의 마지막 라인을 변경하여 작동합니다

manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 0, 
       listener); 

NETWORK_PROVIDER는 전화 네트워크 (예를 들어, 3G) 또는 3 문제 관련

+0

좋은 지적이지만 문제는 아닙니다. 문제는, 만약 장치를 선택하지 않았다면, LogCat 메시지도 전혀받지 못한다는 것입니다. LogCat 메시지를 받기 때문에 제대로 선택했는지 확인합니다. GPS에 대해서만 나는 아무 것도 얻지 못한다. – erikbwork

+0

업데이트를 확인하십시오! – Ian

+0

사실, 틀렸어. 하지만 내 코드베이스에서, 내가 여기에 붙여 넣은 것에서. – erikbwork

관련 문제