Próbuję zrobić prostą aplikację na Androida, aby uzyskać aktualną lokalizację za pomocą GPS lub operatora sieci (WIFI lub wieża), ale mam do czynienia z takimi problemami, starając się uruchomić na Androida. To się nie uruchomi dało mi wyjątek, nie wiem dlaczego.Jak mogę programowo uzyskać aktualną lokalizację w Androidzie?
To jest kod. To takie proste, ponieważ chcę, aby przetestować coraz lokalizacja & później dodam Niektóre funkcje & funkcjonalność ..
główny:
package com.GpsTesting;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class GPS_TestActivity extends Activity{
/** Called when the activity is first created. */
String location_text="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
location_text= "latitude: "+lat+"longitude: "+lng;
Toast.makeText(getApplicationContext(), location_text, Toast.LENGTH_SHORT).show();
}
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener);
}
}
manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.GpsTesting"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name" android:permission="android.permission.ACCESS_FINE_LOCATION">
<activity android:name=".GPS_TestActivity"
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>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
tak, to jest problem w kodzie? Robię to za pomocą samouczka online (z android dev & innych witryn).
Wielkie dzięki.
Uwagi Dodano:
** Mam naprawdę zużyty rzeczą. Próbuję uruchomić aplikację za pomocą sposobu zaćmienia (podłączenie mojego urządzenia poprzez USB & uruchomić aplikację do urządzenia zamiast aplikacji) .. kiedy próbowałem w ten sposób, aplikacja działa dobrze bez problemu !!! podczas korzystania ze starego sposobu (wysyłanie pliku .apk za pośrednictwem poczty elektronicznej &, a następnie instalowanie go z telefonu, nadal daje mi wyjątek!) może ktoś mi wyjaśnić, dlaczego tak się dzieje? Czy brakuje mi czegoś? od, jestem znany w rozwoju Androida. więc obawiam się, że brakuje mi punktu ...
Uwaga: Wysyłam przez e-mail plik .apk, który znajduje się w folderze bin (który jest podpisany za pomocą eclipse, dla cel testowania) ... Próbowałem z inną prostą aplikacją tylko po to, aby upewnić się, że plik .apk, który jest dostępny w folderze bin prawym onw (do testowania), czy nie, & to działa ... więc plik APK jest po prostu dobrze ... ale dlaczego dla aplikacji sieciowej nie działa w czasie zaćmienia działa? góry dzięki;) **
rozwiązana;)
Rozwiązaniem problemu dodałem pozwolenie zanim w manifeście w tagu aplikacji
android: Permission = "Android .permission.ACCESS_FINE_LOCATION "
i był duplikatem, ponieważ został już dodany poniżej (lub ponieważ znajduje się w niewłaściwym miejscu). Tak więc usunąłem go & działa poprawnie.
Dziękuję bardzo chłopaki
proszę pisać dziennik z stacktrace, albo przynajmniej powiedzieć, co zrobić wyjątek można dostać i gdzie dokładnie. – MByD
Jakiego wyjątku otrzymujesz? – jamapag
Tak, dostęp do systemu Android GPS może być denerwujący. Czy wiesz, jaki wyjątek dostajesz? Uruchom debugger w Eclipse lub użyj polecenia 'adb logcat' (adb znajduje się w katalogu platform-tools zestawu SDK systemu Android). –