1

こんにちは、デバイス ネットワークまたは Wi-Fi 接続を使用して、Android の Location API を使用してデバイスの位置を取得しようとしています。ただし、緯度または経度を取得していないようです。

ロケーションプロバイダーとマネージャーを作成し、ロケーションリスナーを登録しました。

そして私は・・・それから私は

ローンチ

locationManagaer.requestLocationUpdates(locationProvide.getName(),TIME_INTERVAL, DISTANCE, this);

その時点から、アプリは新しい場所の変更をまったく取得しません。私は何が欠けていますか?

これが私のuserLocationコードです

public class UserLocation implements LocationListener{

    public static final int UPDATE_LATT = 0;

    private static final int TIME_INTERVAL = 1000;

    private static final int DISTANCE = 10;

    private LocationManager locationManagaer;

    private LocationProvider locationProvide;

    private Handler mHandler;

    public UserLocation(Context context, Handler handler){
        locationManagaer = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        locationProvide = locationManagaer.getProvider(LocationManager.NETWORK_PROVIDER);

        mHandler = handler;


    }

    public void startSearchLocation(){
        Log.d("", "sart location search");
        locationManagaer.requestLocationUpdates(locationProvide.getName(),TIME_INTERVAL, DISTANCE, this);
    }

    @Override
    public void onLocationChanged(Location location) {
        Log.d("", "location update on " + location.getLongitude());
        Message.obtain(mHandler,UPDATE_LATT, new Position(location.getLongitude(), location.getLatitude()));

    }

    @Override
    public void onProviderDisabled(String provider) {
        Log.d("", "onProviderDisabled");

    }

    @Override
    public void onProviderEnabled(String provider) {
        Log.d("", "onProviderEnabled");

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        Log.d("", "onStatusChanged");

    }

}

これは、このクラスを使用して新しい場所をセットアップしてリッスンする私のアクティビティです

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mHandler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            position = (Position) msg.obj;

            Toast.makeText(
                    getApplicationContext(),
                    position.getLattitude() + " " + position.getLongetude(),
                    Toast.LENGTH_LONG).show();
        }

    };

    userLocation = new UserLocation(this, mHandler);

    initializeViews();


    userLocation.startSearchLocation();
}

これが私の位置 POJO

public class Position {

    private double longetude;

    private double lattitude;

    public Position(){

    }

    public Position(double longetude, double lattitude){

    }

    public double getLongetude() {
        return longetude;
    }

    public void setLongetude(double longetude) {
        this.longetude = longetude;
    }

    public double getLattitude() {
        return lattitude;
    }

    public void setLattitude(double lattitude) {
        this.lattitude = lattitude;
    }


}

これが私のマニフェストファイルの一部です

  <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.jr.haliotest.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>

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />

ログキャット:

03-23 20:19:14.309: D/(16992): sart location search
03-23 20:19:14.384: E/(16992): file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
03-23 20:19:14.384: I/(16992): Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
03-23 20:19:14.449: I/(16992): Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
03-23 20:19:14.514: I/(16992): Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl

それが役立つ場合は、ルート化されたhtc one xでテストします。Wi-Fi がオンで、神の信号

4

2 に答える 2

1

建物内にいる場合、デバイスが GPS プロバイダーに接続できない可能性があります。信号を受信できるように、よりオープンなスペースに移動することをお勧めします。

デバイスが gps 信号を受信するように接続されている場合、1 つのヒント。GPS のサインが点滅から点灯に変わります。

于 2013-03-23T20:57:04.803 に答える
1

電話の位置情報サービスが有効になっているかどうかを確認することから始めて、再起動してみてください。また、「ネットワーク」の代わりに「GPS」を使用して、ネットワークが位置情報を提供していないことに問題があるかどうかを確認してください。

私の経験から、Wi-Fi ネットワークは単に位置情報を提供しないことがあります。それがセルネットワークにも当てはまるかどうかはわかりませんが、保証はないと思います.

于 2013-03-23T21:00:04.887 に答える