Android 尝试获取GPS位置并在文本视图中显示

Android 尝试获取GPS位置并在文本视图中显示,android,android-location,Android,Android Location,我对安卓开发非常陌生。所以请原谅这个重复的问题。我已经尝试了很多解决方案,但似乎没有一个对我很有效…它们都在模拟器和我的手机上崩溃 我正在开发一个应用程序,只想获取我的GPS位置,然后将名为“大”的文本视图设置为位置值 这是密码。(我的代码里有import语句和所有东西..我只是没有把它们复制过来 GPSActivity//启动的活动。textview R.id.big确实存在 public class GPSActivity extends Activity{ private Locatio

我对安卓开发非常陌生。所以请原谅这个重复的问题。我已经尝试了很多解决方案,但似乎没有一个对我很有效…它们都在模拟器和我的手机上崩溃

我正在开发一个应用程序,只想获取我的GPS位置,然后将名为“大”的文本视图设置为位置值

这是密码。(我的代码里有import语句和所有东西..我只是没有把它们复制过来

GPSActivity//启动的活动。textview R.id.big确实存在

public class GPSActivity extends Activity{

private LocationManager       manager = null;
private MyLocationListener    listener;
private TextView             textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    listener = new MyLocationListener(textView);
    textView = (TextView) findViewById(R.id.big);

    manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    listener = new MyLocationListener(textView);

    manager.requestLocationUpdates(LocationManager
            .GPS_PROVIDER, 5000, 10,listener);

    }
} 
我实现了我自己的LocationListener来更改我的文本视图…我不确定我是否真的被允许这样做

public class MyLocationListener implements LocationListener
{
TextView textView;

public MyLocationListener(TextView textView)
{
    this.textView = textView;
}

@Override
public void onLocationChanged(Location location) {
    this.textView.setText(location.toString());
}

@Override
public void onStatusChanged(String s, int i, Bundle bundle) {

}

@Override
public void onProviderEnabled(String s) {

}

@Override
public void onProviderDisabled(String s) {

}
}
最后是我的清单文件。我确保包含我需要的权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mytestapp"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="16" />
<application

    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
    <activity
        android:name="com.mytestapp.GPSActivity"
        android:permission="ACCESS_FINE_LOCATION"
        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>

当我调用
requestLocationUpdates()
时,问题出现在
GPSActivity
中。如果我在代码中留下这一行,应用程序将崩溃。如果我将其注释掉,TextView“大”会像我预期的那样显示


编辑:我也尝试过创建一个
LocationListener
作为一个内部类,就像我见过很多其他人这样做一样……我得到了同样的结果(应用程序崩溃)

除了访问权限之外,请尝试添加位置权限 全球定位系统

它们应该是这样的

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

添加



下载到manifest.xml文件。

有关使用GPS或WiFi的地理定位的完整支持,请使用:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>   
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

对于不支持gps使用的设备:

<uses-feature
     android:name="android.hardware.location.gps"
     android:required="false" />


Praytell,你的日志对崩溃有何评论?嗯,这是个好问题,我甚至没想检查。在模拟器上,它说
java.lang.RuntimeException:无法启动活动组件信息{com.testapp/com.testapp.GPSActivity}:java.lang.SecurityException:“gps”位置提供程序需要访问\u FINE\u位置权限。
那么……我的清单文件有什么问题吗?logcat的好处是它可以准确地告诉您在许多情况下的错误:“位置提供程序需要访问\u FINE\u位置权限”.添加。是的,我有权限线,但它在错误的地方。现在它工作得很好。谢谢,谢谢。我的位置没有显示,但至少我没有崩溃。看起来我还有其他问题要解决。谢谢!
<uses-feature
     android:name="android.hardware.location.gps"
     android:required="false" />