-1

Мой NETWORK_PROVIDER в моем приложении GPS прекратил работать внезапно. Это не имеет никакого отношения к моему интернет-соединению, потому что все другие приложения на моем телефоне работают с Интернетом. Я попробовал его с GPS_PROVIDER, и он отлично работает и, кроме того, после звонка onLocationChanged он может извлекать местоположения из Интернета, поэтому это дополнительно восстанавливает, что Интернет РАБОТАЕТ.Почему мой NETWORK_PROVIDER внезапно прекратил вызывать onLocationChanged?

Мой телефон:

  • Samsung Galaxy S2
  • Android версии 4.0.3

Вещи, которые я пытался без толку:

  • Убирали проекту
  • Тестирование снаружи в разных местах. То же самое, GPS работает, но у провайдера сети этого нет.
  • Rebooting телефон/Switching телефон выключен
  • При удалении приложения приложения на телефон, то переустановка
  • Включение Интернет и выключение

повторяю, все работает нормально, а затем вдруг он перестал работать для нет причин. Во время этого перехода я вообще не менял свой код.

Тем не менее, вот часть моего кода и здесь в Pastebin http://pastebin.com/itrXgWr7:

Это называется первым, он может ввести if(networkEnabled), а затем в LogCat он печатает "Getting updates from network provider".

networkEnabled = providerHandler.isNetworkEnabled(); 
GPSEnabled = providerHandler.isGPSEnabled(); 

if(!GPSEnabled && !networkEnabled) 
{ 
    Toast.makeText(this, "Error: This application requires a GPS or network connection", 
      Toast.LENGTH_SHORT).show(); 
} 
else 
{ 
    if(GPSEnabled) 
    { 
     locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 
    } 
    else if(networkEnabled) 
    { 
     System.out.println("Getting updates from network provider"); 
     locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); 
    } 
} 

Это LocationListener. onLocationChanged никогда не вызывается с NETWORK_PROVIDER. Повторяю, он ИСПОЛЬЗУЕТСЯ назвать это, но не больше. Что происходит вместо этого, когда я выключаю GPS, это то, что onProviderDisabled вызывается сразу, давая мне тост-сообщение "Disabled provider network". Это с Wi-Fi и мобильный Интернет включен:

//Get Latitude and Longitude of current location and use that to get the surrounding markers. 
@Override 
public void onLocationChanged(Location location) 
{ 
    //Get coordinates 
    double lat = (location.getLatitude()); 
    double lng = (location.getLongitude()); 
    Log.d("MainActivity", "got location: " + lat + ": " + lng); 
    //get nearest locations 
    new GetLocations().execute(SharedVariables.root + SharedVariables.locationsController + SharedVariables.getNearestMethod + lat + "/" + lng); 

    // Zoom in, animating the camera after the markers have been placed 
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 10)); 
    System.out.println("lat = " + lat + ", lng = " + lng); 

    //Stop listening for updates. We only want to do this once. 
    locManager.removeUpdates(this); 
} 


public void onProviderDisabled(String provider) 
{ 
    Toast.makeText(MainActivity.this, "Disabled provider " + provider, 
     Toast.LENGTH_SHORT).show(); 
} 

public void onProviderEnabled(String provider) 
{ 
     Toast.makeText(MainActivity.this, "Enabled new provider " + provider, 
       Toast.LENGTH_SHORT).show(); 
} 

public void onStatusChanged(String provider, int status, 
           Bundle extras) 
{ 
    // required for interface, not used 
} 

У меня есть все необходимые разрешения в моем файле XML, как вы можете увидеть:

<uses-permission android:name="com.example.neatspots.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

Это мой LogCat:

03-08 14:27:58.663: D/dalvikvm(4176): GC_CONCURRENT freed 223K, 3% free 9072K/9351K, paused 2ms+2ms 
03-08 14:27:58.823: D/dalvikvm(4176): GC_CONCURRENT freed 272K, 4% free 9239K/9607K, paused 2ms+2ms 
03-08 14:27:58.948: D/dalvikvm(4176): GC_CONCURRENT freed 263K, 4% free 9545K/9863K, paused 2ms+3ms 
03-08 14:27:59.018: D/dalvikvm(4176): GC_FOR_ALLOC freed 76K, 3% free 9742K/9991K, paused 29ms 
03-08 14:27:59.048: I/System.out(4176): GPS: false 
03-08 14:27:59.048: I/System.out(4176): Network: true 
03-08 14:27:59.048: I/System.out(4176): Getting updates from network provider 
03-08 14:27:59.063: D/SensorManager(4176): ====>>>>>Num Sensor: 1 
03-08 14:27:59.063: D/SensorManager(4176): ====>>>>>Num Sensor: 2 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 3 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 4 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 5 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 6 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 7 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 8 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 9 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 10 
03-08 14:27:59.068: D/SensorManager(4176): ====>>>>>Num Sensor: 0 
03-08 14:27:59.068: D/SensorManager(4176): registerListener :: handle = 0 name= K3DH Acceleration Sensor delay= 20000 Listener= [email protected] 
03-08 14:27:59.068: E/SensorManager(4176): thread start 
03-08 14:27:59.068: E/SensorManager(4176): =======>>> Sensor Thread Running <<<======== 
03-08 14:27:59.208: D/libEGL(4176): loaded /system/lib/egl/libEGL_mali.so 
03-08 14:27:59.213: D/libEGL(4176): loaded /system/lib/egl/libGLESv1_CM_mali.so 
03-08 14:27:59.218: D/libEGL(4176): loaded /system/lib/egl/libGLESv2_mali.so 
03-08 14:27:59.228: D/(4176): Device driver API match 
03-08 14:27:59.228: D/(4176): Device driver API version: 10 
03-08 14:27:59.228: D/(4176): User space API version: 10 
03-08 14:27:59.233: D/(4176): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Mon Mar 5 09:47:55 KST 2012 
03-08 14:27:59.303: D/dalvikvm(4176): GC_FOR_ALLOC freed 143K, 3% free 10004K/10247K, paused 14ms 
03-08 14:27:59.368: D/dalvikvm(4176): GC_CONCURRENT freed 194K, 4% free 10276K/10631K, paused 1ms+2ms 
03-08 14:27:59.418: D/dalvikvm(4176): GC_FOR_ALLOC freed 598K, 8% free 10022K/10823K, paused 23ms 
03-08 14:27:59.523: D/dalvikvm(4176): GC_CONCURRENT freed 365K, 7% free 10162K/10823K, paused 2ms+3ms 
03-08 14:27:59.643: D/dalvikvm(4176): GC_CONCURRENT freed 579K, 7% free 10094K/10823K, paused 2ms+3ms 
03-08 14:27:59.783: D/dalvikvm(4176): GC_CONCURRENT freed 241K, 5% free 10338K/10823K, paused 2ms+2ms 
03-08 14:27:59.938: D/dalvikvm(4176): GC_FOR_ALLOC freed 92K, 4% free 10464K/10823K, paused 26ms 
03-08 14:27:59.943: I/dalvikvm-heap(4176): Grow heap (frag case) to 11.271MB for 1048592-byte allocation 
03-08 14:27:59.973: D/dalvikvm(4176): GC_FOR_ALLOC freed 46K, 4% free 11442K/11911K, paused 18ms 
03-08 14:28:00.023: D/dalvikvm(4176): GC_CONCURRENT freed 1K, 4% free 11443K/11911K, paused 2ms+2ms 
03-08 14:28:00.108: D/dalvikvm(4176): GC_FOR_ALLOC freed 1090K, 13% free 10647K/12103K, paused 21ms 
03-08 14:28:00.108: I/dalvikvm-heap(4176): Grow heap (frag case) to 11.449MB for 1048592-byte allocation 
03-08 14:28:00.133: D/dalvikvm(4176): GC_FOR_ALLOC freed <1K, 4% free 11670K/12103K, paused 14ms 
03-08 14:28:00.193: D/dalvikvm(4176): GC_CONCURRENT freed 21K, 4% free 11677K/12103K, paused 1ms+2ms 
03-08 14:28:00.293: D/dalvikvm(4176): GC_FOR_ALLOC freed 1288K, 13% free 10649K/12167K, paused 16ms 
03-08 14:28:00.293: I/dalvikvm-heap(4176): Grow heap (frag case) to 11.452MB for 1048592-byte allocation 
03-08 14:28:00.308: D/dalvikvm(4176): GC_FOR_ALLOC freed 174K, 6% free 11499K/12167K, paused 16ms 
03-08 14:28:00.358: D/dalvikvm(4176): GC_CONCURRENT freed 1K, 5% free 11603K/12167K, paused 1ms+2ms 
03-08 14:28:00.458: D/dalvikvm(4176): GC_FOR_ALLOC freed 1084K, 14% free 10570K/12167K, paused 40ms 
03-08 14:28:00.458: I/dalvikvm-heap(4176): Grow heap (frag case) to 11.374MB for 1048592-byte allocation 
03-08 14:28:00.498: D/dalvikvm(4176): GC_FOR_ALLOC freed 82K, 6% free 11511K/12167K, paused 31ms 
03-08 14:28:00.548: D/dalvikvm(4176): GC_CONCURRENT freed 19K, 6% free 11514K/12167K, paused 2ms+3ms 
+0

Было ли приложение разбито или что-то в этом роде. Попробуйте распечатать lastknownLocation в трассировке стека. Основной причиной может быть задержка в получении вашего места. locManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0, это); –

+0

Если ваше перемещение или задержка очень малы, то GPS имеет тенденцию возвращать lastKnownLoaction, а не получать новый. –

+1

У меня такая же проблема, не знаю, что произошло. – alex

ответ

2

Перейдите в Настройки -> «Доступ к местоположению» Убедитесь, что «Wi-Fi & местоположение мобильной сети» включено.

Смежные вопросы