2015-03-06 3 views
-1

Я запускаю этот кусок кода, но не вижу ничего значительного в logcat.Получить местоположение на Android

Что мне не хватает?

Вот мой класс активности:

public class MainActivity extends Activity implements LocationListener, ConnectionCallbacks, OnConnectionFailedListener, com.google.android.gms.location.LocationListener { 

     GoogleApiClient mGoogleApiClient; 

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

     Button btnStart = (Button) findViewById(R.id.btnStart); 

     Button btnStop = (Button) findViewById(R.id.btnStop); 


     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(LocationServices.API) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 
     btnStart.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //SERVICE STARTED HERE 
//     Intent i = new Intent(getBaseContext(),MainService.class); 
//     getBaseContext().startService(i); 
        Log.d("SERVİCE", "START"); 
        mGoogleApiClient.connect(); 
        Toast.makeText(v.getContext(), "SERVICE START", Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     btnStop.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //SERVICE STOP HERE 
       Intent i = new Intent(getBaseContext(),MainService.class); 
       getBaseContext().stopService(i); 
        Log.d("SERVİCE", "STOP"); 
        mGoogleApiClient.disconnect(); 
       Toast.makeText(v.getContext(), "SERVICE STOP", Toast.LENGTH_SHORT).show(); 

      } 
     }); 


    } 
// @Override 
// public void onLocationChanged(Location location) { 
//  // TODO Auto-generated method stub 
//  Log.d("KORDINAT-lat", String.valueOf(location.getLatitude())); 
//  Log.d("KORDINAT-long", String.valueOf(location.getLongitude())); 
// } 
    @Override 
    public void onConnectionFailed(ConnectionResult arg0) { 
     // TODO Auto-generated method stub 
     Log.d("TAG", "GoogleApiClient connection has failed"); 
    } 
    @Override 
    public void onConnected(Bundle arg0) { 
     // TODO Auto-generated method stub 
      mLocationRequest = LocationRequest.create(); 
      mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); 
      mLocationRequest.setInterval(2000); // Update location every second 

      LocationServices.FusedLocationApi.requestLocationUpdates(
        mGoogleApiClient, mLocationRequest, this); 
//   
//  Location location= LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 
//  Log.d("KORDINAT-lat", String.valueOf(location.getLatitude())); 
//  Log.d("KORDINAT-long", String.valueOf(location.getLongitude())); 

    } 
    @Override 
    public void onConnectionSuspended(int arg0) { 
     // TODO Auto-generated method stub 
     Log.d("TAG", "GoogleApiClient connection has been suspend"); 
    } 
    @Override 
    public void onLocationChanged(Location location) { 
     // TODO Auto-generated method stub 
     Log.d("Location received: " , location.toString()); 
    } 
    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 

    } 
    @Override 
    public void onProviderEnabled(String provider) { 
     // TODO Auto-generated method stub 

    } 
    @Override 
    public void onProviderDisabled(String provider) { 
     // TODO Auto-generated method stub 

    } 
    } 

Я также добавить нужный permession на файлы Android, как ниже:

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 

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

также добавил meta-data, но ничего, кажется, не случится ничего. Logcat не показывает мне ошибки.

+0

попытаться установить быстрый интервал (setFastestInterval) –

ответ

-1

Что вы ожидаете получить? Если клиент подключается успешно, он просто запрашивает обновления местоположения. Если местоположение не изменяется, ничего не выводит.

+0

EMMM да хороший момент, но как получить текущее местоположение, хотя – stackada

+0

LocationServices.FusedLocationApi.getLastLocation (GoogleApiClient) может иметь некоторую помощь –

+0

вызова, что в onConnected(), это может быть пустым но это не должно быть –