Я был связан с вашей библиотекой (еще раз, СПАСИБО и отличная работа).CWAC LocationPoller - трансляция не принимается
Я пробовал последние два часа, в чем проблема, но я потерпел неудачу.
Вот AlarmManager в моем Вход код экрана:
Intent i = new Intent(con, LocationPoller.class);
i.putExtra(LocationPoller.EXTRA_INTENT, new Intent(con,
LocationReceiver.class));
i.putExtra(LocationPoller.EXTRA_PROVIDER,
LocationManager.NETWORK_PROVIDER);
gps = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(con, 0, i, PendingIntent.FLAG_NO_CREATE);
gps.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(),
10 * 1000, pi);
Log.d("Service: ",
"GPS Service started and scheduled with AlarmManager");
Вот класс, я создал себе (а не один из вашего демо, хотя подобное):
public class LocationReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Bundle b = intent.getExtras();
Location loc = (Location) b.get(LocationPoller.EXTRA_LOCATION);
String msg;
if (loc == null)
{
loc = (Location) b.get(LocationPoller.EXTRA_LASTKNOWN);
if (loc == null)
{
msg = intent.getStringExtra(LocationPoller.EXTRA_ERROR);
}
else
{
msg = "TIMEOUT, lastKnown=" + loc.toString();
}
}
else
{
msg = loc.toString();
}
if (msg == null)
{
msg = "Invalid broadcast received!";
}
Log.d("GPS Broadcast: ", "Location: " + msg);
}
}
Ничего не происходит. Я предполагаю это, потому что я вообще не вижу никакой информации в своем логарифме. Кроме того, PollerThread (если это правильный термин) продолжает накапливаться, когда я смотрю на представление отладки, как будто они все ждут чего-то, но не отправляют какие-либо трансляции.
Что я делаю неправильно? Определить местоположение через сеть не должно занять много времени, если это? Даже если это был вопрос, я должен был получить обратную связь ..
Вот записи в прикладном теге моего манифеста,:
<receiver android:name="com.commonsware.cwac.locpoll.LocationPoller" />
<receiver android:name=".LocationReceiver" />
<service android:name="com.commonsware.cwac.locpoll.LocationPollerService" />
Я получил помощь от другого парня, который в основном импортировал файлы из вашей библиотеки непосредственно в проект и использовал их. Теперь он работает отлично. Я думаю, что проблема заключалась в заявлении получателя в моем манифесте (что-то связано с пакетами). Теперь о вашей точке ... Я получаю местоположение водителя (он отправляется на сервер, где настольное приложение отображает его на карте). Я выбрал ваш код/библиотеку, потому что хорошо, вы пишете отличный код!Я новичок в разработке Android, поэтому я не всегда знаю, что искать, чего избегать, что с ним делать. Я собираюсь изменить время до 40. – Asim
Умм вы можете сказать мне, какие изменения мне нужно сделать, чтобы ваша служба автоматически выбирала лучшего поставщика? Мое приложение заставит пользователя включить GPS, но предположим, что он не может получить блокировку, я также хочу иметь возможность использовать Сетевой провайдер. – Asim
@Asim: вам нужно будет изменить 'requestLocation()' на 'LocationPollerService' (чтобы разрешить' EXTRA_PROVIDER' быть либо 'String', либо' Criteria') и 'onPreExecute()' в его внутреннем классе 'PollerThread' (для использования другой 'requestLocationUpdates()' версии, которая берет «Критерии» вместо имени поставщика). – CommonsWare