2011-10-30 4 views
0

Android에서 locationmanager에 문제가 있습니다.Android 위치 관리자가 메소드를 호출하지 않습니다.

package com.flyer; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.widget.Toast; 
import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONArray; 
import org.json.JSONObject; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

public class ContentProvider implements LocationListener { 
    private Activity connectedActivity; 

    public ContentProvider(Activity connectedActivity) { 
     this.connectedActivity = connectedActivity; 
     LocationManager locationManager = (LocationManager)connectedActivity.getSystemService(Context.LOCATION_SERVICE); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 0, this); 
    } 

    public void onLocationChanged(Location loc) 
    { 
     MyActivity.rowsData.add(new RowData(0, "Test", "Val: " + Math.random(), 0)); 
    } 

    public void onProviderDisabled(String provider) 
    { 
     Intent in = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
     connectedActivity.startActivity(in); 
    } 

    public void onProviderEnabled(String provider) 
    { 
     Toast.makeText(connectedActivity.getApplicationContext(), 
       "Gps Enabled", 
       Toast.LENGTH_SHORT).show(); 

    } 

    public void onStatusChanged(String provider, int status, Bundle extras) 
    { 
     MyActivity.rowsData.add(new RowData(0, "Test", "Val: "+Math.random(), 0)); 
    } 


} 

내가 생성자 컨텐트 프로 (이) 내 mainactivity에 전화 : 나는 다음과 같은 클래스가 있습니다. 그러나 내 에뮬레이터에 텔넷하여 지오 픽스를 수행하면 아무 일도 일어나지 않습니다.

중단 점을 사용하여 콘텐츠 설정을 시도했지만 도달하지 못했습니다.

또한 Android 2.1을 개발 중입니다.

도움을 주시면 감사하겠습니다.

10-30 21:10:38.787: WARN/GpsLocationProvider(52): Could not open GPS configuration file /etc/gps.conf 

답변

1

당신이 매니페스트 XML을 게시 할 수

경고를 얻기? 필요한 권한을 추가 했습니까?

<android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<android:name="android.permission.ACCESS_FINE_LOCATION" /> 

logcat 추적에서 예외가 발생 했습니까? 실제 장치에서이 문제를 해결하여 에뮬레이터의 구성 문제를 배제하는 것이 좋습니다. 내가 adb logcat를 사용하여 내 앱 디버그 추적을 켜 방법

참고로, 여기 :

adb shell stop 
adb shell setprop log.tag.MYTAG DEBUG 
adb shell start 
adb logcat MYTAG:D *:W > c:\temp\trace.txt 

가 DEBUG 레벨 추적과 주변 엉망 않도록하려면, 당신이 Log.INFO 수준에서 로깅을 고수하는 것이 좋습니다. 이 경우 마지막 명령 만 필요합니다.

+0

권한을 추가했습니다. 예. 나는 경고를 받아 OP에 추가한다. Furter, 관련 오류를 찾을 수 없습니다. – RobotRock

+0

해당 오류에 대한 Google 검색을 수행하면 에뮬레이터에서 위치를 설정해야한다는 메시지가 표시됩니다. http://groups.google.com/group/android-framework/msg/f94e0bbb227c03c6 실제 휴대 전화로 테스트하고 문제가되지 않습니다 ... –

+0

두 대의 휴대 전화에서 테스트 한 후 onProviderDisabled 및 onProviderEnabled를 얻지 만 onLocationChanged를 사용하지 마십시오. 아무 래도 여전히 제대로 작동하지 않고 있습니다. 그 이유는 무엇입니까? – RobotRock

관련 문제