所以这是我的MyLocationListener类
package com.example.gpslocater;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class MyLocationListener implements LocationListener {
public TextView mLocationTextView;
Context mContent;
public MyLocationListener(Context context) {
mContent = context;
}
@Override
public void onLocationChanged(Location location) {
location.getLatitude();
location.getLongitude();
String Text = "My current location is :" +
"Latitude = " + location.getLatitude() +
" Longitude = " + location.getLongitude();
//figure out a way to make it display through a text view
mLocationTextView.setText(Text);
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(mContent, "Gps Disabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(mContent, "Gps Enabled", Toast.LENGTH_SHORT);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
这是我的GPS活动课程
public class GPSActivity extends Activity {
private Button mGPSButton;
private TextView mLatitudeTextView;
private TextView mLongitudeTextView;
private LocationManager mLocationManager;
private LocationListener mLocationListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gps);
mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocationListener = new MyLocationListener(null);
mGPSButton = (Button)findViewById(R.id.press_button);
mGPSButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationListener);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.g, menu);
return true;
}
}
现在,当我运行它时,它可以正常工作但按下按钮后程序停止响应会出现很多错误消息
有一条错误消息说java.lang.SecurityException“gps”位置提供程序需要ACCESS_FINE_LOCATION权限,我是否必须添加,如果是这样,我在哪里添加它?我认为这是我的程序崩溃的原因。
答案 0 :(得分:11)
从提供的logcat有意义。 在清单中添加此内容
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
答案 1 :(得分:2)
您必须将以下权限添加到Android清单:
<强>的AndroidManifest.xml 强>
...
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
...
您还可以使用Eclipse的权限编辑器。
答案 2 :(得分:0)
在清单文件中添加以下权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>// missing in manifest file
一些有用的链接
权限列表
http://developer.android.com/reference/android/Manifest.permission.html
清单文件
http://developer.android.com/guide/topics/manifest/manifest-intro.html
答案 3 :(得分:0)
把它放在你的清单中..权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
答案 4 :(得分:-1)
你是否正确需要使用许可
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>