これが私の 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 パーミッションが必要であるというエラー メッセージが表示されます。追加する必要がある場合、どこに追加すればよいですか? これが私のプログラムがクラッシュした原因だと思います。