Android GPS lokalizáció kiíratási gond

Android GPS lokalizáció kiíratási gond
2013-03-25T11:07:27+01:00
2013-03-25T18:05:48+01:00
2022-11-28T15:00:36+01:00
nagyimi13
Csináltam egy Androidos App-ot, amelyik lekéri a készülék koordinátáit és a képernyőre kiírja azokat. A gond az hogy sajnos nem ír ki semmit. Itt a kód is:

main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > </RelativeLayout>

MainActivity.java:

package com.example.gpstracking; import android.location.Location; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { /** * Function to get latitude * */ static Location location; public static double getLatitude(){ if(location != null){ latitude = location.getLatitude(); } // return latitude return latitude; } /** * Function to get longitude * */ public static double getLongitude(){ if(location != null){ longitude = location.getLongitude(); } // return longitude return longitude; } static double latitude = getLatitude(); static double longitude = getLongitude(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public static void main(String[] args) { System.out.println("***"+latitude+"***"); System.out.println("****"+longitude+"****"); } @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; } }

Mi lehet a hiba? mit nem csináltam jól?
Mutasd a teljes hozzászólást!
Nem látom át a kódodat, de nekem ez a kód működött.

public class Main extends Activity implements LocationListener { TextView latitude; TextView longitude; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); latitude = (TextView) findViewById(R.id.tvLatitude); longitude = (TextView) findViewById(R.id.tvLongitude); LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 50, this); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub latitude.setText(String.valueOf(location.getLatitude())); longitude.setText(String.valueOf(location.getLongitude())); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } }

Egyébként a location változót hol deklarálod ha szabadna tudnom ?
Mutasd a teljes hozzászólást!


  • static Location location;

    De ebben hogy néz ki az xml fájl?
    Mutasd a teljes hozzászólást!
  • Az xml-ben van 2 TextView (tvLatitude, tvLongitude). De ha gondolod kiírod konzolra, mint ahogy a main-edben van és meglátod, hogy legalább értéket kapnak e.


    Helyett
    latitude.setText(String.valueOf(location.getLatitude())); longitude.setText(String.valueOf(location.getLongitude()));


    System.out.println(location.getLatitude()); System.out.println(location.getLongitude());

    XML tartalma:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="My Location" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Latitude" /> <TextView android:id="@+id/tvLatitude" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Longitude" /> <TextView android:id="@+id/tvLongitude" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" /> </LinearLayout>
    Mutasd a teljes hozzászólást!
  • értem. Megpróbáltam a te verziódat, de hiába teszel bele az xml-be a textview-okat, a következő két sorban ezt a két hibaüzenetet kapom:

    latitude = (TextView) findViewById(R.id.tvLatitude); longitude = (TextView) findViewById(R.id.tvLongitude);

    ,,tvLatitude cannot be resolved or is not a field''
    ,,tvLongitude cannot be resolved or is not a field''
    Mutasd a teljes hozzászólást!
  • Ha a fordításnál írja ki a hibát, akkor az a gyakori eset áll fenn, hogy a Resource még nem frissült és emiatt nem látja az id-ket. Nyomj rá egy clean-t meg ments el minden dokumentumot. De ezen túlmenően írasd ki a console-ra az eredményt, hogy legalább lássuk, hogy működik, csak a kijelzés nem. Én az előbb lefuttattam a programot és miután megtalálta a műholdat kiírta a koordinátámat.

    Nem tudom csatolni a forrást, úgy tűnik 1 MB-nál nagyobb állományt nem engednek.
    Mutasd a teljes hozzászólást!
  • Megszünt a hibaüzenet miután clean-eltem és mentettem minden dokumentumot, de ha elindítom az appot akkor az leáll:

    ,,Az And.GPS.Trc.Act alakalmazás com.example.gpstracking folyamata váratlanul leállt. Kérjük próbálja újra
    Kényszerbezárás''
    Mutasd a teljes hozzászólást!
  • Permissionok rendben vannak?

    Inkább küldj pm-ben egy elérhetőséget és elküldöm oda a solutiont és akkor abból kiszeded amire neked szükséged van.
    Mutasd a teljes hozzászólást!
  • Sikerül!
    Hiányzott egy permission!
    :D kössz
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd