मैं एंड्रॉइड प्रोग्रामिंग के लिए नया हूं और एक बहुत ही बुनियादी ऐप बनाकर शुरू करना चाहता हूं जो स्क्रीन पर वर्तमान स्थान के अक्षांश और देशांतर को प्रदर्शित करता है।स्थान क्लाइंट getLastLocation() वापस शून्य
मैं अपने सैमसंग गैलेक्सी एस 3 के लिए विकास कर रहा हूं और पढ़ता हूं कि आपको kickstart the phone to return the GPS की आवश्यकता है।
मैंने onConnected()
विधि में requestLocationUpdates()
विधि कॉल के साथ विधि प्रबंधक पर ऐसा करने का प्रयास किया है। हालांकि मुझे लगता है कि LocationClient अभी भी null
स्थान लौटा रहा है।
क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?
यहाँ मेरी MainActivity है:
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient;
import com.google.android.gms.location.LocationClient;
public class MainActivity extends FragmentActivity implements
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener {
private LocationClient mLocationClient;
private Location mCurrentLocation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLocationClient = new LocationClient(this, this, this);
}
@Override
protected void onStart() {
super.onStart();
mLocationClient.connect();
}
@Override
protected void onStop() {
mLocationClient.disconnect();
super.onStop();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onConnectionFailed(ConnectionResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onConnected(Bundle arg0) {
Toast.makeText(this, "Connected", Toast.LENGTH_SHORT).show();
LocationManager manager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(final Location location) {
}
});
mCurrentLocation = mLocationClient.getLastLocation();
TextView latTextView = (TextView) findViewById(R.id.latitude_text);
latTextView.setText(Double.toString(mCurrentLocation.getLatitude()));
TextView longTextView = (TextView) findViewById(R.id.longitude_text);
longTextView.setText(Double.toString(mCurrentLocation.getLongitude()));
}
@Override
public void onDisconnected() {
Toast.makeText(this, "Disconnected. Please re-connect.",
Toast.LENGTH_SHORT).show();
}
}
मेरे Android प्रकट इस तरह दिखता है:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.willigetwet.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
डिबगर मुझे लगता है कि mCurrentLocation mLocationClient.getLastLocation()
करने के लिए कॉल के बाद रिक्त है चल रहा है।
मैं किसी भी मदद के लिए बहुत आभारी हूं!
यह बिल्कुल था - मेरे पास कोई आखिरी स्थान सहेजा नहीं गया था। मुझे दूसरे दिन एक प्रतिस्थापन एस 3 मिला और पूरी तरह से भूल गया कि मैंने स्थान सेवाओं का उपयोग नहीं किया था। जीपीएस सेट करने के लिए Google मानचित्र पर एक क्लिक करें और यह अभी ठीक काम कर रहा है :)। धन्यवाद! –
खुशी है कि यह आपके लिए काम करता है :) –
गॉट त्रुटि स्थान क्लाइंट को स्थानांतरित नहीं कर सकता .... –