2011-04-25 147 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感谢您的回答。对于复制道歉。 请帮忙

回答