2013-03-11 2 views
0

В моем приложении мне нужно получить телефон, как только пользователь нажмет кнопку. Вот мой код.Расположение телефона, когда пользователь нажимает кнопку

import android.location.*; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 


public class MainActivity extends Activity { 

    private double latitude; 
    private double longitude; 
    private Button sendrequest; 
    private TextView text; 
    private LocationManager locationManager; 
    private String provider; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     setViews(); 
    } 

    private void setViews() { 
     text = (TextView) findViewById(R.id.textView); 
     sendrequest = (Button) findViewById(R.id.button); 

     sendrequest.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
       Criteria criteria = new Criteria(); 
       provider = locationManager.getBestProvider(criteria, false); 
       Location location = locationManager.getLastKnownLocation(provider); 
       if (location != null) { 
        text.append("Provider " + provider + " has been selected."); 
        //onLocationChanged(location); 
        } else { 
         text.append("Location not avilable"); 
        } 
      } 
     }); 
    } 
} 

Но его не возвращает мне место. Его просто добавляет строку «Location not available» в текст TextView. Я знаю, что это потому, что он возвращает последнее сохраненное местоположение, которое равно null. Но я не хочу использовать LocationListener, так как хочу, чтобы это место было только один раз. т.е. когда пользователь запускает приложение. Пожалуйста помоги.

+0

Я предполагаю, что вы используете это на эмуляторе. Если это AFAIK, он всегда возвращает null на эмулятор. Вы пробовали его на самом устройстве? –

+0

Да. Я сделал. Тот же результат. –

ответ

-1

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

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

ofc Я сделал это. Что нибудь еще? –

+0

Мне интересно, почему я получаю минус :( – Bishan

+1

@shrigurunayak следуйте этому [учебнику] (http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/). – Bishan

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