2017-01-20 2 views
0

Я пытаюсь получить местоположение виртуального устройства AVD проблемы здесь, что возвращение места нуля, я добавил разрешения на приложение и до сих пор не удались получить место,Android не удается получить место,

public class MainActivity extends AppCompatActivity implements LocationListener { 
LocationManager locationManager; 
String provider; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

    provider = locationManager.getBestProvider(new Criteria(), false); 

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     // TODO: Consider calling 
     // ActivityCompat#requestPermissions 
     // here to request the missing permissions, and then overriding 
     //public void onRequestPermissionsResult(int requestCode, String[] permissions, 
     //          int[] grantResults) 
     // to handle the case where the user grants the permission. See the documentation 
     // for ActivityCompat#requestPermissions for more details. 

     Log.i("Location Info","Permission Denied"); 
     return; 
    } 
    Location location = locationManager.getLastKnownLocation(provider); 
    if (location != null) { 
     Log.i("Location Info","Location Achieved "); 

    } else { 

     Log.i("Location Info", "Location Failed"); 
    } 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     // TODO: Consider calling 
     // ActivityCompat#requestPermissions 
     // here to request the missing permissions, and then overriding 
     // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
     //           int[] grantResults) 
     // to handle the case where the user grants the permission. See the documentation 
     // for ActivityCompat#requestPermissions for more details. 
     return; 
    } 
    locationManager.requestLocationUpdates(provider, 400, 1, this); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     // TODO: Consider calling 
     // ActivityCompat#requestPermissions 
     // here to request the missing permissions, and then overriding 
     // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
     //           int[] grantResults) 
     // to handle the case where the user grants the permission. See the documentation 
     // for ActivityCompat#requestPermissions for more details. 
     return; 
    } 
    locationManager.removeUpdates(this); 
} 

@Override 
public void onLocationChanged(Location location) { 
     Double longitude = location.getLongitude(); 
     Double latitude = location.getLatitude(); 
     Log.i("location Info Lat",longitude.toString()); 
     Log.i("Location Info long",longitude.toString()); 
} 

@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 

} 

@Override 
public void onProviderEnabled(String provider) { 

} 

@Override 
public void onProviderDisabled(String provider) { 

} 

в результате все данные журнала журнала: Location Failed, каково решение в этом случае

ответ

0

Местоположение null на эмуляторе, потому что оно не знает вашего последнего отправленного местоположения (новый старт или что-то еще). Вам нужно отправить свои координаты в эмулятор. Работает лучше, когда вы тестируете на реальном устройстве.

Edit:

Введите координаты, как в этом image.

+0

Спасибо, ты действительно поможешь мне в миле :) –

+0

Вы можете отметить ответ, если хотите: D –

0

Проблема здесь, как упоминалось в @Florescu, начинается с неизвестного состояния, когда я даю эмулятору измерение в первый раз, узнайте, как эмулятор понимает это как движение, но когда я запускаю его снова, он дает мне правильный поведение

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