2011-04-25 135 views
0

您好,我一直在嘗試從書中的示例運行此代碼,但我得到的是空值傳遞給變量,所以我只收到消息作爲「您當前的位置是:沒有位置找到」GPS座標不被檢索

清單文件是如下

<?xml version="1.0" encoding="utf-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.snooze.android.geopositioning" 
android:versionCode="1" 
android:versionName="1.0"> 

<uses-sdk android:minSdkVersion="8" /> 

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

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".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> 

main.xml中的文件是

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    > 
    <TextView 
     android:id="@+id/myLocationText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" 
     /> 
    </LinearLayout> 

最後是MainActivity.java

package com.snooze.android.geopositioning; 
import android.app.Activity; 
import android.content.Context; 
import android.location.Location; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends Activity 
{ 
@Override 
public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    LocationManager locationManager; 
    String context = Context.LOCATION_SERVICE; 
    locationManager = (LocationManager)getSystemService(context); 
    String provider = LocationManager.GPS_PROVIDER; 
    Location location = locationManager.getLastKnownLocation(provider); 
    updateWithNewLocation(location);  
    } 

    public void updateWithNewLocation(Location location) 
    { 
    String latLongString; 
    TextView myLocationText; 
    myLocationText = (TextView)findViewById(R.id.myLocationText); 
    if (location != null) 
    { 
     double lat = location.getLatitude(); 
     double lng = location.getLongitude(); 
     latLongString = "Lat:" + String.valueOf(lat) + "\nLong:" + String.valueOf(lng); 
    } 
    else 
    { 
     latLongString = "No location found"; 
    } 
    myLocationText.setText("Your Current Position is:\n" + latLongString); 
    } 
} 

這是我的第一個項目,所以我不熟悉一些工作,但我複製了一切,因爲這本書說,但它不工作。在許多網站上嘗試過各種各樣的東西,以及來自這個論壇的答案....但是無濟於事。 我正在使用Eclipse,並且添加了試圖運行Android 2.2以及Google API的AVD。

我認爲座標沒有被傳遞給變量。 我已經發布爲新用戶,但無法對其發表評論,因此我再次提出了問題。Lukas Kunth,chaitanya和wareninja感謝您的回答。對於複製道歉。 請幫忙

回答