Android locationmanager не вызывает методы - PullRequest
0 голосов
/ 30 октября 2011

У меня проблемы с менеджером местоположения в 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));
    }


}

Я вызываю конструктор ContentProvider (this) в моей основной деятельности. Однако, когда я подключаюсь к эмулятору и выполняю гео-исправление, ничего не происходит.

Я попытался установить контент с точкой останова, она не будет достигнута.

Также я разрабатываю для Android 2.1.

Любая помощь будет оценена.

Получение предупреждения:

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

1 Ответ

1 голос
/ 31 октября 2011

Можете ли вы опубликовать свой манифест XML?Вы добавили необходимые разрешения?

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

Получали ли вы какие-либо исключения в вашей трассировке logcat?Я рекомендую попробовать это на реальном устройстве, чтобы исключить проблемы конфигурации с вашим эмулятором.

FYI, вот как я включаю трассировку отладки для моего приложения, используя adb logcat:

adb shell stop
adb shell setprop log.tag.MYTAG DEBUG
adb shell start
adb logcat MYTAG:D *:W > c:\temp\trace.txt
* 1009во избежание возиться с трассировкой уровня DEBUG, я предлагаю вам заняться логированием на уровне Log.INFO.В этом случае вам нужна только последняя команда.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...